|
|
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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/14489b82dcbb4.html, оценка из 5, голосов 10
|