The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Сигнализация изменения переменной в threads (threads gcc signal)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: threads, gcc, signal,  (найти похожие документы)
Date: Mon, 05 Aug 2002 15:05:31 +0600 From: Valentin Nechayev <netch@segfault.kiev.ua> Newsgroups: fido7.ru.linux Subject: Сигнализация изменения переменной в threads >Переменная, хранящая состояние event'а; condition variable, >по которой сигнализируется ее изменение; мьютекс для сериализации доступа >к перечисленному. man pthread_cond_wait и pthread_cond_timedwait прочел? Hет? Ждешь примерно так: pthread_mutex_lock( &ep->ev_mutex ); for(;;) { if( ep->ev_flag ) break; pthread_cond_wait( &ep->ev_cond, &ep->ev_mutex ); } pthread_mutex_unlock( &ep->ev_mutex ); Оно будет ждать пока не дадут "сигнал" по condition variable и пока ты не найдешь после сигнала ep->ev_flag равным не 0. Если хочешь безусловный вывал по таймауту - или в цикле проверяешь текущее время (и тогда обязательно pthread_cond_timedwait), или голый pthread_cond_timedwait без цикла. Сигнал дается так: pthread_mutex_lock( &ep->ev_mutex ); pthread_cond_signal( &ep->ev_cond ); pthread_mutex_unlock( &ep->ev_mutex ); Все это если ep указывает на структуру вида { int ev_flag; pthread_cond_t ev_cond; pthread_mutex_t ev_mutex; } SK> А что-нибудь вроде SK> WaitForSignal( hSignal, nMilliSecTimeout); SK> нету? pthread_cond_timedwait. Опишешь сколько ему можно спать. /netch

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру