[pthreads] прервать select()

sergey_m

Какой самый правильный способ разблокировать тред, который заблокировался в select? Я могу придумать только вариант послать ему сигнал, но считается плохо использовать сигналы в тредовых приложениях.

Marinavo_0507

считается плохо использовать сигналы в тредовых приложениях
кем считается? для кого тогда pthread_kill придуман?
ну ещё известный трюк с пайпом можно применить

sergey_m

Так написано в книжке Бутенхофа.
Известный трюк с пайпом это когда создаётся пайп для общения двух тредов одного процесса?

Marinavo_0507

Не обязательно двух тредов. Может, и одного.

Werdna

Правильный способ — через пайп. По крайней мере я так видел чтобы было сделано.

Marinavo_0507

А чем Бутенхоф аргументирует возражения против сигналов?

sergey_m

Там целая глава, я уже не воспроизведу. Там есть такая фраза "beware signals, they are jabberwocks".

Marinavo_0507

Ну с сигналами надо аккуратнее, чтобы соревнований не было, это трудно. То есть beware - правильное слово.
И в некоторых реализациях сигналы сильно не по стандарту реализованы, но вроде бы не в этом месте.

krishtaf

Так написано в книжке Бутенхофа.

Неужели за 9 лет ничего не изменилось ?
Оставить комментарий
Имя или ник:
Комментарий: