Необходимо доработать данную программу с учетом, что:
На языке программирования С/С++:
Напишите функцию, удовлетворяющую следующим условиям:
a. Прототип функции:
int lab_pthread_cond_timedwait(pthread_cond_t *cond,
pthread_mutex_t *mutex, unsigned int timetowait);
b. Входные параметры: адрес условной переменной, адрес мьютекса, количество миллисекунд, устанавливаемое для ожидания условной переменной.
c. Функция возвращает следующие значения:
- 0 в случае успешного выполнения функции,
- 1 в случае, если время ожидания условной переменной превысило заданное в параметре timetowait количество миллисекунд,
- -1 в случае любой ошибки.
При реализации функции разрешается использовать стандартные структуры и функции библиотек ОС Linux, за исключением функции pthread_cond_timedwait(…).
Пояснить подробно написанную реализацию.
Требования:
Некоторый комментарий:
"преподаватель предполагает, что студенты зароются в исходники glibc и будут использовать аналогичные низкоуровневые механизмы для своей реализации. Конкретно под капотом pthread_cond_timedwait лежит системный вызов futex, который как раз умеет ждать изменения значения". То есть ожидается корректная проверка захвата мьютекса (что-то на подобии того описанного механизма futex)
| Гарантия на работу | 1 год |
| Средний балл | 4.54 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |