diff --git a/server/serial.c b/server/serial.c index 239a9c5..4be8226 100644 --- a/server/serial.c +++ b/server/serial.c @@ -127,6 +127,10 @@ struct object *create_serial( struct fd *fd ) { struct serial *serial; + /* set the fd back to blocking if necessary */ + if (get_fd_options(fd) & (FILE_SYNCHRONOUS_IO_ALERT | FILE_SYNCHRONOUS_IO_NONALERT)) + fcntl( get_unix_fd(fd), F_SETFL, 0 ); + if (!(serial = alloc_object( &serial_ops ))) return NULL; serial->readinterval = 0;