|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Lev Walkin 2:5020/400 04 Feb 2004 15:29:30 To : Slawa Olhovchenkov Subject : Re: синхронизация. --------------------------------------------------------------------------------
Slawa Olhovchenkov wrote:
> Hello Max!
>
> 04 Feb 04, Max Khon writes to Slawa Olhovchenkov:
>
> SO>> Ась?!
>
> MK> что-то делать со списком не в обработчике сигнала, а в главном цикле.
> MK> в обработчике сигнала только ставить флажок, что надо бы что-то поделать
> MK> со списком.
>
> А!
> Hе, не пойдет.
> Проблема синхронизации доступа к списку в целом просто заменится на проблему
> синхронизации доступа к элементу списка. ИМХО.
sig_atomic_t flag;
void
sighandler(int sig) {
flag = 1;
signal(sig, sighandler); /* SysV compat */
}
int
main() {
signal(sig, sighandler); /* Use signal handler */
/*
* Чтобы вызов сигнала прерывал всякие select/poll'ы,
* для быстрого реагирования на смену флага.
*/
siginterrupt(sig, 1);
for(;;) {
if(flag) {
... /* Do link-related tasks */
flag = 0;
}
... /* select/poll or other event waiting mechanisms */
}
}
ну и где здесь проблемы синхронизации доступа?
--
Lev Walkin
vlm@netli.com
--- ifmail v.2.15dev5.3
* Origin: Netli, Inc. (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/91048bef6d05.html, оценка из 5, голосов 10
|