|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Konstantin Kamensky 2:5020/400 17 Jul 2001 11:24:48 To : All Subject : Re: system call "close" - blocking? -------------------------------------------------------------------------------- > > Столкнулся тут с одной проблемой - открываем с помощью вызова open в > > блокирующем режиме ttySxx (в неблокирующем нормально не работает), и при > > определенных обстоятельствах (например, ошибка общения с модемом) необходимо > > порт закрыть и открыть заново, так вот, вызов close блокирует программу. Что > > в связи с эти можно предпринять? > 1. завести поток, который будет закрывать дескрипторы (криво); > 2. пустить поток с флажком CLONE_FILES, работой которого будет закрытие > данного дескриптора (криво); > 3. пускать логику работы с ttySxx в отдельном потоке, отличном от основного; А как это поможет закрыть дескриптор? > > Можно делать что-то типа alarm(1), тогда > > через секунду сигнал сбросит системный вызов, но это не решает проблему > > висящего файл-дескриптора, их число ведь ограничено. > криво и ненадежно. лучше fcntl(2)-ом выставить неблокирующий режим, а потом > вызывать close(2). тоже криво. это не помогает, close все равно блокируется -- With best regards, Konstantin Kamensky (krishome@mail.zaural.ru) --- ifmail v.2.15dev5 * Origin: ROSTELECOM TCMS-14 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/79016862ed73.html, оценка из 5, голосов 10
|