LINUX.ORG.RU

threads & read??


0

0

как из одного треда разбудить другой, ну типа он там на read() сидит и вдруг понадобился мне...

anonymous

типа нада задавать маску сигналов нитке,

и посылать ему сигналы наверно...

binr ★★
()

tkill(), tgkill() в 2.6 / ntpl. kill в 2.4.

По идее, pthread_kill() сама должна знать, чего делать.

idle ★★★★★
()
Ответ на: комментарий от idle

сам придумал такую штуку: создаем пайп, тред висит на поле/селекте, со своим дескриптором и пайпом, ну и типа wakeup, когда мы из другого треда пишем в этот пайп.

anonymous
()

pthread_kill - самое правильное

зачем тебе лишние дескрипторы плодить :) sigaction-ом ставишь обработку сигнала, например sigio, и в обработчика сигнала ставишь флаг, что типа был сигнал. когда надо пнуть поток - посылашь ему сигнал. Тогда любая блокирующая функция read/poll/select вывалится скодом возврата < 0 и errno == EINTR И не надо создавать никаких пайпов :) Олег

anonymous
()

Ты, что пишешь то нах тебе пайп для thread-ов у них же вся память общая читай про p_thread_mutex_t & p_thread_cond_t, там все просто...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.