Добавление часов в Inotify в многопоточной программе

Я хотел использовать inotify для мониторинга некоторых файлов в моей программе на C.

Мне интересно, безопасно ли иметь один поток, читающий из дескриптора inotify (тот, который возвращается inotify_init), таким образом, блокируя, пока не произойдет какое-то событие, во время этого ожидания будет возможность добавить новый файл в очередь просмотра, используя inotify_add_watch во время другого потока Период ожидания.

Нужно ли синхронизировать эти действия или это безопасно?


person Andna    schedule 17.06.2012    source источник
comment
есть новости по этому вопросу?   -  person duedl0r    schedule 05.06.2013


Ответы (1)


У меня нет точного ответа, но я знаю по опыту, что вы даже не можете открывать файлы в другом потоке, не вызывая read() в потоке, который вы используете inotify. Я помню, как читал, что вам нужно использовать inotify_init1() вместе с флагом IN_CLOEXEC, чтобы разрешить файловый ввод-вывод в других потоках. Я не уверен, означает ли это, что вы действительно можете использовать inotify более чем в одном потоке одновременно.

person Syed H    schedule 27.09.2012