LINUX.ORG.RU

Информирование потоком -> приложения о чем-то важном :)


0

0

Когда я программил пол виндой я использовал event'ы чтобы установить какое то состояние в потоке которого ожидает программа, когда же программа ожидающая event получала его она выполняла какието действия. Мне нужен аналог этого под линукс, я посматривал на condition variables но мне не нравится что они используются с мьютексом - он мне не нужен. Поделитесь ценным опытом по этому вопросу да и вобще кто как реализует механизм когда потоку надо сообщить о чем то приложению и при этом продолжать свою работу.

anonymous

Re: Информирование потоком -> приложения о чем-то важном :)

Если гарантируется, что событий не слишком много, можно использовать пару файл-дескрипторов. Создавай их вызовом pipe, один будет для чтения, другой для записи. Вызовом select можно следить сразу за множеством дескрипторов (что эмулирует вындовый WaitForMultipleObjects). SetEvent - записываешь что-то в один конец пайпа, а другой тред в это время сосет второй конец в select.... Так и работаешь. Но если событий очень много, то остаютмя только тредовые мехазмы, в частности, пара cond var & mutex хорошо справляется со своей задачей.

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