広告
広告
シグナルを送信や待ち合わせなどのセマフォ操作を行なうためにSystem V IPC 関数 semop を呼び出します。OPSTRING はsemop 構造体の pack された配列でなければなりません。semop 構造体はそれぞれpack("sss", $semnum, $semop, $semflag)
のように作ることができます。セマフォ操作の数はOPSTRING の長さからわかります。成功時には真を、エラー時には偽を返します。
$semop = pack("sss", $semnum, -1, 0); die "Semaphore trouble: $!\n" unless semop($semid, $semop);
セマフォ ID $semid のセマフォ $semnum で待ち合わせを行なう
セマフォにシグナルを送るには、"-1"を "1" に変更
広告