Читаем Programming with POSIX® Threads полностью

Headers:

Errors: [EINVAL]mutex is invalid.

[EPERM] calling thread does not own mutex. Hint: Always unlock within the same thread.

<p>9.3.5 Condition variables</p>

Condition variables provide communication, the ability to wait for some shared resource to reach some desired state, or to signal that it has reached some state in which another thread may be interested. Each condition variable is closely associated with a mutex that protects the state of the resource.

pthread_condattr_destroy

int pthread_condattr_destroy (

pthread_condattr_t *attr);

Destroy a condition variable attributes object. The object can no longer be used.

References: 3.3, 5.2.2

Headers: 

Errors: [EINVAL] attr invalid.

Hint: Does not affect condition variables created using attr.

| pthread_condattr_getpshared...............................................[_pos

IX THREAD PROCESS SHARED]

int pthread_condattr_getpshared ( const pthread_condattr_t int

*attr, *pshared);

Determine whether condition variables created with attr can be shared by multiple processes.

pshared

PTHREAD_PROCESS_SHARED May be shared if in shared

memory.

PTHREAD_PROCESS_PRIVATE

Cannot be shared.

References: 3.3, 5.2.2

Headers: 

Errors: [EINVAL]attrinvalid.

Hint: pshared condition variables must be allocated in shared memory

and used with pshared mutexes.

pthread_condattr_init

int pthread_condattr_init (

pthread_condattr_t *attr);

Initialize a condition variable attributes object with default attributes.

References: 3.3, 5.2.2

Headers: 

Errors: [ENOMEM] insufficient memory for attr.

Hint: Use to define condition variable types.

| pthread_condattr_setpshared................................................[_POSIX_THREAD_PRocEss_sHARED]

int pthread_condattr_setpshared (

pthread_condattr_t *attr,

int pshared);

Condition variables created with attr can be shared between processes if the pthread_cond_t variable is allocated in memory shared by the processes.

pshared

PTHREAD_PROCESS_SHARED

PTHREAD_PROCESS_PRIVATE

May be shared if in shared memory.

Cannot be shared.

References: 3.3, 5.2.2 Headers: 

Errors: [EINVAL] attr or detachstate invalid.

Hint: pshared condition variables must be allocated in shared memory

and used with pshared mutexes.

pthread_cond_destroy

int pthread_cond_destroy (

pthread_cond_t *cond);

Destroy condition variable cond that you no longer need.

References: 3.3, 5.2.2

Headers: 

Errors: [EBUSY]condisinuse.

[EINVAL] cond is invalid. Hint: Safest after wakeup from cond, when no other threads will wait.

| pthread_cond_init

int pthread cond init

(

pthread_cond_t

const pthread_condattr_t

*cond, *attr);

Initialize a condition variable cond. The attr argument specifies optional creation

attributes.

References:

Headers:

Errors:

Hint:

3.3, 5.2.2

[EAGAIN] insufficient resources (other than memory).

[ ENOMEM] insufficient memory.

[ EBUSY ] cond is already initialized.

[EINVAL] attr is invalid.

Use static initialization instead, if possible.

pthread_cond_broadcast

int pthread_cond_broadcast (

pthread_cond_t *cond);

Broadcast condition variable cond, waking all current waiters.

References: 3.3, 5.2.2

Headers: 

Errors: [EINVAL]condisinvalid.

Hint: Use when more than one waiter may respond to predicate change

or if any waiting thread may not be able to respond.

pthread_cond_signal

int pthread_cond_signal (

pthread_cond_t *cond);

Signal condition variable cond, waking one waiting thread. If SCHED_FIFO or SCHED_RR policy threads are waiting, the highest-priority waiter is awakened. Otherwise, an unspecified waiter is awakened.

References: 3.3, 5.2.2

Headers: 

Errors: [EINVAL]condisinvalid.

Hint: Use when any waiter can respond, and only one need respond. (All

waiters are equal.)

pthread_cond_timedwait

int pthread cond timedwait

pthread_cond_t pthread_mutex_t const struct timespec

*cond, *mutex, *abstime);

Wait on condition variable cond, until awakened by a signal or broadcast, or until the absolute time abstime is reached.

References:

Headers:

Errors:

Hint:

3.3, 5.2.2

[ETIMEDOUT] time specified by abstime has passed.

[EINVAL] cond, mutex, or abstime is invalid.

[EINVAL] different mutexes for concurrent waits.

[EINVAL] mutex is not owned by calling thread.

Mutex is always unlocked (before wait) and relocked (after wait)

inside pthread_cond_timedwait, even if the wait fails, times out, or

is canceled.

pthread_cond_wait

int pthread_cond_wait ( pthread_cond_t pthread_mutex_t

*cond, *mutex);

Wait on condition variable cond, until awakened by a signal or broadcast.

References: 3.3, 5.2.2 Headers: 

Errors: [EINVAL] cond or mutex is invalid.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных