Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: system call "close" - blocking?   Konstantin Kamensky   17 Jul 2001 11:24:48 
 Re: system call "close" - blocking?   Bohdan Vlasyuk   17 Jul 2001 12:19:37 
Архивное /ru.linux/79016862ed73.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional