Вопрос по семафорам
От: Lion99rus Россия  
Дата: 26.09.05 07:53
Оценка:
В программе есть ожидание семафора:
sem_wait(sem_queue);
если просто запускаю программу, то все нормально, стоит, ждет.

Если запускаю под KDevelop и ставлю бряку на нее, то постоянно срабатывает с результатом -1 и errno=EINTR (Interrupted system call).

В чем может быть проблема?
Re: Вопрос по семафорам
От: D_V_F Украина  
Дата: 04.10.05 15:29
Оценка:
Здравствуйте, Lion99rus, Вы писали:

L>В программе есть ожидание семафора:

L>sem_wait(sem_queue);
L>если просто запускаю программу, то все нормально, стоит, ждет.

L>Если запускаю под KDevelop и ставлю бряку на нее, то постоянно срабатывает с результатом -1 и errno=EINTR (Interrupted system call).


L>В чем может быть проблема?


Ну дак понятно, сигнал программе пришел — получился EINTR
Наиболее вероятно, что дебаггер этот сигнал и прислал.
Re[2]: Вопрос по семафорам
От: Lion99rus Россия  
Дата: 05.10.05 09:01
Оценка:
Здравствуйте, D_V_F, Вы писали:

D_V>Здравствуйте, Lion99rus, Вы писали:


L>>В программе есть ожидание семафора:

L>>sem_wait(sem_queue);
L>>если просто запускаю программу, то все нормально, стоит, ждет.

L>>Если запускаю под KDevelop и ставлю бряку на нее, то постоянно срабатывает с результатом -1 и errno=EINTR (Interrupted system call).


L>>В чем может быть проблема?


D_V>Ну дак понятно, сигнал программе пришел — получился EINTR

D_V>Наиболее вероятно, что дебаггер этот сигнал и прислал.

Не, это понятно. А вот с какого дебаггер сигналы посылает? Отключить можно? Или он в принципе так работает?
Re[3]: Вопрос по семафорам
От: execve  
Дата: 05.10.05 10:03
Оценка:
Здравствуйте, Lion99rus, Вы писали:

L>Не, это понятно. А вот с какого дебаггер сигналы посылает? Отключить можно? Или он в принципе так работает?


Проще корректно обрабатывать errno=EINTR.
Тем более, что он не только под отладчиком может случиться.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.