Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Dmitry Pryanishnikov                 2:464/36       05 Feb 2004  13:10:31
 To : All
 Subject : =?koi8-r?B?UmU6IKqlvqubub6lgomGpZMu?=
 -------------------------------------------------------------------------------- 
 
 
 Привет!
 
 On Wed, 4 Feb 2004, Max Khon wrote:
 
 >  d> головы и хвоста очереди. IMHO единставенное правильное решение -
 >  d> блокировать доставку этого сигнала при помощи sigprocmask, затем
 >  d> сделать с очередью все, что нужно, и затем деблокировать доставку
 >  d> сигнала вторым вызовом sigprocmask.
 >
 > это все не нужно. см. пример который Lev Walkin привел.
 
  Поскольку ко мне не гейтуются письма из fido7, я отвечаю на все, что вижу по
 этой теме на google. Итак, to Constantin Stefanov по поводу ^C^C - можно жать
 сколько угодно, после разблокировки доставки придет один сигнал, и IMHO так у
 них и задумано, see man 2 sigaction:
 
      When a signal condition arises for a process, the signal is added to a
      set of signals pending for the process.
 
 Если буквально понимать это описание, ведется просто битовая маска сигналов,
 которые нужно доставить (ее можно получить по sigpending()), а не очередь
 запросов на прерывание (если это не так - прошу меня поправить, по описанию
 вроде должно быть так). Поэтому случай с заблокированной по sigprocmask
 доставкой IMHO ничуть не хуже, чем просто ситуация, когда второй раз нажали
 ^C, а программа еще не получила процессорное время для обработки первого.
 Кроме того, на время отработки обработчика сигнала доставка этого же сигнала
 автоматически блокируется так же, как и простым вызовом sigprocmask. Поэтому
 потерять приход одного сигнала sigprocmask не даст, а приход нескольких с
 одним номером не гарантирован в любом случае.
 
  Теперь to Max Khon: Lev Walkin написал практически то же, что и я, но это
 не отменяет необходимости заботиться о целостности очереди. Поэтому еще раз,
 если по условию задачи четко нужно менять очередь (возможно, где-то в
 середине) и в основном коде, и в сигнальном обработчике, и при этом нельзя
 "спустить указание" (поставить по сигналу только флаг, а обработать его в
 основной ветке), то при модификации в основном коде необходима блокировка
 доставки сигнала sigprocmask. Я других вариантов не вижу.
 
 Sincerely, Dmitry
 -- 
 Atlantis ISP, System Administrator
 e-mail:  dmitry@atlantis.dp.ua
 nic-hdl: LYNX-RIPE
 --- ifmail v.2.14.os-p7
  * Origin: Atlantis ISP (2:464/36@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 синхронизация.   Slawa Olhovchenkov   03 Feb 2004 17:29:12 
 =?koi8-r?B?UmU6INPJzsjSz87J2sHDydEu?=   Dmitry Pryanishnikov   03 Feb 2004 18:40:37 
 синхронизация.   Max Khon   04 Feb 2004 01:32:52 
 синхронизация.   Slawa Olhovchenkov   04 Feb 2004 12:31:22 
 синхронизация.   Max Khon   04 Feb 2004 17:02:14 
 синхронизация.   Slawa Olhovchenkov   04 Feb 2004 14:38:24 
 Re: синхронизация.   Lev Walkin   04 Feb 2004 15:29:30 
 синхронизация.   Slawa Olhovchenkov   04 Feb 2004 15:41:10 
 синхронизация.   Max Khon   04 Feb 2004 21:47:50 
 синхронизация.   Slawa Olhovchenkov   05 Feb 2004 12:49:18 
 синхронизация.   Max Khon   05 Feb 2004 17:51:28 
 синхронизация.   Slawa Olhovchenkov   05 Feb 2004 17:02:22 
 =?koi8-r?B?UmU6INPJzsjSz87J2sHDydEu?=   Dmitry Pryanishnikov   04 Feb 2004 13:04:05 
 синхронизация.   Slawa Olhovchenkov   04 Feb 2004 14:24:50 
 =?koi8-r?B?UmU6INPJzsjSz87J2sHDydEu?=   Dmitry Pryanishnikov   04 Feb 2004 16:02:10 
 УЙОИТПОЙЪБГЙС.   Max Khon   04 Feb 2004 21:53:18 
 =?koi8-r?B?UmU6IKqlvqubub6lgomGpZMu?=   Dmitry Pryanishnikov   05 Feb 2004 13:10:31 
 Re: синхронизация.   Valentin Nechayev   04 Feb 2004 17:45:11 
 синхронизация.   Slawa Olhovchenkov   04 Feb 2004 18:08:50 
 Re: синхронизация.   Valentin Nechayev   04 Feb 2004 19:09:04 
 синхронизация.   Slawa Olhovchenkov   04 Feb 2004 19:38:34 
 Re: синхронизация.   Valentin Nechayev   04 Feb 2004 22:10:10 
 синхронизация.   Slawa Olhovchenkov   04 Feb 2004 22:21:42 
 Re: синхронизация.   Valentin Nechayev   05 Feb 2004 10:40:49 
 Re: синхронизация.   Dmitry Miloserdov   04 Feb 2004 21:22:01 
 Re: синхронизация.   Valentin Nechayev   04 Feb 2004 22:10:11 
Архивное /ru.unix.bsd/24521459c042c.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional