sema sema_init sema_destroy sema_post sema_wait sema_timedwait sema_trywait sema_value - kernel counting semaphore
Semaphores should not be used where mutexes and condition variables will suffice. Semaphores are a more complex synchronization mechanism than mutexes and condition variables, and are not as efficient.
Semaphores are created with
sema_init (,);
where
Fa sema
is a pointer to space for a
Vt struct sema ,
Fa value
is the initial value of the semaphore, and
Fa description
is a pointer to a null-terminated character string that describes the semaphore.
Semaphores are destroyed with
sema_destroy (.);
A semaphore is posted (incremented) with
sema_post (.);
A semaphore is waited on (decremented) with
sema_wait (,);
sema_timedwait (,);
or
sema_trywait (.);
The
Fa timo
argument to
sema_timedwait ();
specifies the minimum time in ticks to wait before returning with failure.
sema_value ();
is used to read the current value of the semaphore.
If decrementing the semaphore would result in its value being negative,
sema_trywait ();
returns 0 to indicate failure.
Otherwise, a non-zero value is returned to indicate success.
The
sema_timedwait ();
function
returns 0 if waiting on the semaphore succeeded; otherwise a
non-zero error code is returned.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |