日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
sem_timedwait (Integrity, Alpha) |
セマフォのロックを実行します。
#include <semaphore.h>#include <time.h>
int sem_timedwait (sem_t *sem, const struct timespec *abs_timeout);
sem
ロックするセマフォ。abs_timeout
タイムアウトになる絶対時間。
sem_timedwait関数は, sem_wait関数などで sem によって参照されるセマフォをロックします。しかし, sem_post関数の実行で別のプロセスあるいはスレッドのロックが解除されるのを待たずにセマフォをロックすることはできない場合,指定されたタイムアウト時簡になると,この待ち状態は終了します。タイムアウトを測定するクロックで, abs_timeout で指定された絶対時間を過ぎると,タイムアウトになります。 (すなわち,クロックの値が abs_timeout の値と同じあるいはそれを超えた時,あるいは,abs_timeout で指定された絶対時間が呼び出し時にすでに過ぎている場合)。
セマフォがすぐにロック可能な場合,この関数がタイムアウトで処理に失敗することはありません。セマフォがすぐにロックされる場合,abs_timeout の妥当性を確認する必要はありません。
0 正常終了。関数はセマフォ・ロック操作を実行します。 - 1 エラーの発生を示します。 errno に次のいずれかの値を設定します。
- ETIMEDOUT -- 指定された時間が過ぎる前にセマフォをロックすることはできません。
- EINVAL -- sem 引数が有効なセマフォを参照しません。あるいは,プロセスあるいはスレッドがブロックされており, abs_timeout パラメータのナノ秒フィールド値がゼロ未満,あるいは 1000 ミリオンと同じまたはそれを超えています。
- EVMSERR -- 変換不可能な OpenVMS エラー
目次 | 索引 |
|