Чтение онлайн

на главную - закладки

Жанры

Параллельное и распределенное программирование на С++
Шрифт:

pthread_mutex_lock (&semap->lock); while (semap->count == 0)

pthread_cond_wait (&semap->nonzero, &semap->lock); semap->count--;

pthread_mutex_unlock (&semap->lock);

}

void

semaphore_close (semaphore_t *semap) {

munmap ((void *) semap, sizeof (semaphore_t));

}

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

и ожидания инкрементируют и декрементируют счетчик семафора, несмотря на то, что они сами не инициализировали семафор.

/* create.c */

# include «pthread. h»

#include «sem.h»

int main {

semaphore_t * semap;

semap = semaphore_create («/ tmp/semaphore») ; if (semap == NULL)

exit(l); semaphore_close (semap) ,-return (0);

}

/* post */

# include «pthread. h»

#include «sem.h»

int main {

semaphore_t *semap;

semap = semaphore_open ("/tmp/semaphore»);

if (semap == NULL)

exit (1);

semaphore_post (semap);

semaphore_close (semap);

return (0);

}

/* wait */

#include «pthread.h»

#include «sem.h» int

main {

semaphore_t *semap;

semap = semaphore_open ("/tmp/semaphore 11 ); if (semap == NULL)

exit (1); semaphore_wait (semap); semaphore_close (semap); return (0);

}

Будущие направления

Отсутствуют.

Смотри также

pthread_cond_destroy , pthread_create , pthread_mutex_destroy , pthread_mutexattr_destroy , том Base Definitions стандарта IEEE Std 1003.1-2001,<pthread.h>.

Последовательность внесения изменений

Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширением POSIX Threads Extension.

Issue 6

Функции pthread_mutexattr_destroy и pthread_mutexattr_init отмечены как часть опции Threads.

Раздел «Ошибки» был отредактирован путем при м енения интерпретации IEEE PASC Interpretation 1003.1с #27.

pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling

Имя

pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling

Синопсис

THR #include <pthread.h> TPP

int pthread_mutexattr_getprioceiling (

const pthread_mutexattr_t *restrict attr, int *restrict prioceiling); int pthread_mutexattr_setprioceiling (

pthread_mutexattr_t *attr, int prioceiling);

Описание

Функции pthread_mutexattr_getprioceiling и pthread_mute-xattr_setprioceiling используются для считывания и установки соответственно атрибута prioceiling в объекте атрибутов м

ьютекса, адресуе м о г о параметром attr, который был ранее создан с помо щ ью функции pthread_mutexattr_init .

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

Значение атрибута prioceiling — это минимальный уровень приоритета, на котором еще выполняется критический раздел, защищаемый мьютексом. Чтобы избежать инверсии приоритетов, предельное значение приоритета мьютекса устанавливается выше самого высокого приоритета всех потоков, которые могут блокировать этот мьютекс, или равным ему.

Возвращаемые значения

При успешно м завершении функции pthread_mutexattr_getprioceiling и pthread_mutexattr_setprioceiling возвращают нулевое значение; в противном случае — код ошибки, обозначающий ее характер.

Ошибки

Функции pthread_mutexattr_getprioceiling и pthread_mutexattr_setprioceiling могут завершиться неудачно, если:

[EINVAL] значение, заданное пара м етро м attr, или пара м етро м prioceiling, недействительно;

[EPERM] инициатор вызова не обладает привеле г ия м и для выполнения этой операции.

Эти функции не возвра щ ают код ошибки [EINTR].

pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling — функции считывания и установки атрибута prioceiling в объекте агрибутов м ьютекса (REALTIME THREADS).

Примеры

Отсутствуют.

Замечания по использованию

Отсутствуют.

Логическое обоснование

Отсутствует.

Будущие направления

Отсутствуют.

Смотри также

pthread_cond_destroy, pthread_create, pthread_mutex_destroy, том Base Definitions стандарта1ЕЕЕ Std 1003.1-2001, <pthread.h>.

Последовательность внесения изменений

Функции впервые реализованы в выпуске Issue 5. Включены для со г ласования с расширением POSIX Threads Extension.

Отмечены как часть группы Realtime Threads Feature Group.

Поделиться:
Популярные книги

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Бастард Императора. Том 8

Орлов Андрей Юрьевич
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 8

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Эра Мангуста. Том 2

Третьяков Андрей
2. Рос: Мангуст
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эра Мангуста. Том 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Один на миллион. Трилогия

Земляной Андрей Борисович
Один на миллион
Фантастика:
боевая фантастика
8.95
рейтинг книги
Один на миллион. Трилогия

Помещицы из будущего

Порохня Анна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Помещицы из будущего

Шлейф сандала

Лерн Анна
Фантастика:
фэнтези
6.00
рейтинг книги
Шлейф сандала

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Император

Рави Ивар
7. Прометей
Фантастика:
фэнтези
7.11
рейтинг книги
Император

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри