Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства является частью версии 5.0 Инструментов XCode

Получить эти инструменты:

Если Вы выполняете версию Инструментов XCode кроме 5,0, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.




SEM_WAIT(2)                 BSD System Calls Manual                SEM_WAIT(2)

NAME
     sem_trywait, sem_wait -- lock a semaphore

SYNOPSIS
     #include <semaphore.h>

     int
     sem_trywait(sem_t *sem);

     int
     sem_wait(sem_t *sem);

DESCRIPTION
     The semaphore referenced by sem is locked.  When calling sem_wait(), if the semaphore's value is zero,
     the calling thread will block until the lock is acquired or until the call is interrupted by a signal.
     Alternatively, the sem_trywait() function will fail if the semaphore is already locked, rather than
     blocking on the semaphore.

     If successful (the lock was acquired), sem_wait() and sem_trywait() will return 0.  Otherwise, -1 is
     returned and errno is set, and the state of the semaphore is unchanged.

ERRORS
     sem_wait() and sem_trywait() succeed unless:

     [EAGAIN]           The semaphore is already locked.

     [EDEADLK]          A deadlock was detected.

     [EINTR]            The call was interrupted by a signal.

     [EINVAL]           sem is not a valid semaphore descriptor.

NOTES
     Applications may encounter a priority inversion while using semaphores.  When a thread is waiting on a
     semaphore which is about to be posted by a lower-priority thread and the lower-priority thread is pre-empted preempted
     empted by another thread (of medium priority), a priority inversion has occured, and the higher-prior-ity higher-priority
     ity thread will be blocked for an unlimited time period.  Programmers using the realtime functionality
     of the system should take care to avoid priority inversions.

SEE ALSO
     sem_open(2), sem_post(2), semctl(2), semget(2), semop(2)

HISTORY
     sem_wait() and sem_trywait() are specified in the POSIX Realtime Extension (1003.1b-1993/1003.1i-1995).

Darwin                           June 8, 2000                           Darwin

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации со ссылками на отзыв ниже.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API через Генератор отчетов Ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.