">
ÈÌß
waitsem, nbwaitsem - oæèäaeò äocòyï ê pecypcy, çaêpûòoìy
ceìaôopoì
ÑÈÍÒÀÊÑÈÑ
int waitsem(sem_num) int sem_num; int nbwaitsem(sem_num) int sem_num;
ÎÏÈÑÀÍÈÅ
Waitsem oáecïe÷èâaeò äocòyï ê pecypcy, çaêpûòoìy ceìaôopoì
sem_num. Ecëè pecypc ècïoëüçyeòcÿ äpyãèì ïpoöeccoì, waitsem
ïepeâoäèò âûçûâaþùèé ïpoöecc â cocòoÿíèe oæèäaíèÿ äo òex
ïop, ïoêa pecypc íe ocâoáoäèòcÿ; â òaêoé cèòyaöèè nbwaitsem
âoçâpaùaeò çía÷eíèe ENAVAIL. Waitsem è nbwaitsem
ècïoëüçyþòcÿ âìecòe c sigsem äëÿ cèíxpoíèçaöèè äocòyïa ê
oáùeìy pecypcy. K oäíoìy ceìaôopy ìoãyò oápaòèòücÿ
íecêoëüêo ïpoöeccoâ c ïoìoùüþ waitsem è ïepeâoäÿòcÿ â peæèì
oæèäaíèÿ, ïoêa ïpoöecc, âëaäeþùèé pecypcoì, íe èçäacò
sigsem. Ïpè ýòoì yïpaâëeíèe ïepeäaeòcÿ o÷epeäíoìy ïpoöeccy,
còoÿùeìy â o÷epeäè ê ýòoìy ceìaôopy. O÷epeäü ê ceìaôopy
opãaíèçyeòcÿ ïo ïpèíöèïy "Ïepâûì ïpèøeë - ïepâûì oácëyæeí".
Cècòeìíaÿ coâìecòèìocòü
Waitsem ìoæeò áûòü ècïoëüçoâaí äëÿ paáoòû c ceìaôopaìè,
coçäaííûìè â oïepaöèoííoé cpeäe XENIX âepcèè 3.0, ío íe â
cpeäe XENIX System V.
ÑÌ. ÒÀÊÆÅ
creatsem(3), opensem(3), sigsem(3).
ÄÈÀÃÍÎÑÒÈÊÀ
B cëy÷ae oøèáêè waitsem âoçâpaùaeò -1. Ecëè sem_num
ïpeäâapèòeëüío íe oòêpûò ïyòeì âûçoâa opensem èëè creatsem,
ïepeìeííoé errno ïpècâaèâaeòcÿ çía÷eíèe EBADF. Ecëè sem_num
íe ÿâëÿeòcÿ yêaçaòeëeì ía ôaéë òèïa "ceìaôop", ïepeìeííoé
errno ïpècâaèâaeòcÿ çía÷eíèe ENOTNAM. Ecëè ïpoöecc,
âëaäeþùèé pecypcoì, íe ocâoáoäèë eão ïepeä çaâepøeíèeì, âce
ïpoöeccû, oæèäaþùèe â o÷epeäè ê ýòoìy pecypcy, ïoëy÷aò errno
co çía÷eíèeì ENAVAIL. Ïpè ýòoì pecypc ocòaeòcÿ â
íeoïpeäeëeííoì cocòoÿíèè. Ecëè ïpoöecc èçäaë äâa waitsem
áeç ïpoìeæyòo÷íoão âûçoâa sigsem, ïepeìeííoé errno
ïpècâaèâaeòcÿ çía÷eíèe EINVAL.
ÇAÌE×AÍÈß
Äaííaÿ âoçìoæíocòü cïeöèôè÷ía äëÿ oïepaöèoííoé cpeäû XENIX
è, âoçìoæío, íe ìoæeò áûòü ïpèìeíeía â äpyãèx cècòeìax UNIX.
Ïpè êoìïoíoâêe íeoáxoäèìo yêaçûâaòü ôëaã -lx.