Posted By: Korusef (zmatek nad zmatek) on 'CZprogram'
Title:     IPC semafory
Date:      Wed Feb 15 20:39:27 2006

Ahoj, narazil jsem na drobny zadrhel se semafory pri forkovani.

Mam dva semafory s1,s2, a nasledujici prubeh programu:

s1.lock();
s2.lock();
fork() ---> dite
|            |
|            |
|            s1.unlock()
rodic        |
|            s2.lock()
|            s2.unlock()
s1.lock()    |
s1.unlock()  |
|            exit()
|
|
=====
s2.ulock()
wait()
=====
|
|
exit()

Tj. rodic ceka na uvolneni s1, ktere provadi potomek, ten naopak ceka se svym 
ukoncenim, nez rodic uvolni s2.
Tato konfigurace probehne v poradku.
Problem je, kdyz zkusim konfigucaci, kde cast ==== v rodici je pred 
s1.lock(),s1.unlock().
Tj. dite uvolni s1 a ceka nez rodic uvolni s2, pred opetovnym uzamcenim s1 v 
rodici se ceka na konec ditete.
V teto konfiguraci uvaznu pri tom opetovnem zamykani s1.
Netusim co tam delam spatne.
 


Korusef[ Libor Dener]
                   (-: CauCau :-)

Search the boards