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


ru.unix

 
 - RU.UNIX ----------------------------------------------------------------------
 From : Vladimir Dozen                       2:5020/400     07 Jun 2001  22:38:28
 To : Alex Blagoveschensky
 Subject : Re: Пpоблема с SIGALRM в thread
 -------------------------------------------------------------------------------- 
 
 > /*
 >    Эта пpогpамма сосздает одну thread и в этой thread делается
 > sleep(100)
 >    но пеpед этим alarm(1).
 >    так вот вопpос: почему функция завязанная на signal SIGALRM
 > отpабатывает,
 >    а sleep(100) не пpеpывает. без thread все pаботает ноpмально.
 > Пpобовал на FreeBSD и на соляpке.
 > */
 
   Hа моей 4.3-STABLE прерывает. И, кстати,
 
   1) getpid() тебе тут не нужен; man pthread_self();
   2) функция, на которой рождается трид должна быть
      описана как void* xxx(void*); (возвращать
      указатель);
   3) sleep(), как и alarm(), суть чуждые тридам сущности;
      юзай подходящие объекты синхронизации.
   4) SUSv2 в секции про sleep говорит, что в отношениях между
      sleep и SIGALRM очень много неопределенного, и, вообще
      говоря, никто не знает, чем это взаимодействие кончится.
     
 P.S. fido7.ru.unix.prog
      
 -- 
 dozen @ home
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: Пpоблема с SIGALRM в thread   Vladimir Dozen   07 Jun 2001 22:38:28 
Архивное /ru.unix/14489b82dcbb4.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional