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 :-)