Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширением POSIX Threads Extension.
Issue 6
Функции pthread_getschedparam() и pthread_setschedparam() от м ечены как часть опций Threads и Thread Execution Scheduling.
Код ошибки [ENOSYS] был исключен, поскольку е г о нет с м ысла учитывать, если реализация не под д ерживает опцию Thread Execution Scheduling.
К описанию прототипа функции pthread_setschedparam() был приложен список опечаток Open Group Corrigendum U026/2, чтобы второй ар г у м ент этой функции и м ел тип int.
Для согласования со стандартом IEEE Std 1003.1d-1999 было добавлено значение стратегии планирования SCHED_SPORADIC.
В целях согласования со стандартом ISO/IEC 9899: 1999 в прототип функции pthread_getschedparam () было добавлено ключевое слово restrict.
Был добавлен список опечаток Open Group Corrigendum U047/1.
Быладобавлена интерпретация IEEE PASC 1тегрге1а1юп 1003.1 #96, отмечающая» что значения приоритета также можно установить путем вызова функции pthread_setschedprio().
Имя
pthread_join — функция ожидания завершения потока.
Синопсис
THR
#include
int pthread_join (pthread_t thread, void **value _ptr);
Описание
Функция pthread_join() приостанавливает выполнение вызывающего потока до тех пор, пока не завершится заданный поток (если он еще не завершился). Если после удачного возвращения из функции pthread_join () параметр value_ptr не равен значению NULL значение, передавае м ое функции pthread_exit() завершающимся потоком, будет доступным в области памяти, адресуемой параметром value_ptr. Успешное выполнение функции pthread_join () означает, что заданный поток завершился. Результаты нескольких одновременных обращений к функции pthread_join (), в параметрах которых задается один и тот же поток, не определены. Если поток, вызывающий функцию pthread_join(), отменен, то заданный поток не будет выгружен.
Не определено, учитывается ли в значении {PTHREAD_THREADS_MAX} поток, который завершился, но остался отсоединенным.
Возвращаемые значения
При успешном завершении функция pthread_join () возвращает нулевое значение; в противном случае — код ошибки, обозначающий ее характер.
Ошибки
Функция pthread_join () завершится неудачно, если:
[EINVAL] реализация обнаружила, что значение, заданное параметром thread, не относится ни к одному из присоединенных потоков;
[ESRCH] не найден ни один поток, идентификационный номер которого (ID) соответствовал бы заданному потоку.