summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorArmin Novak <anovak@thinstuff.com>2013-08-16 10:34:54 +0200
committerBernhard Miklautz <bmiklautz@thinstuff.at>2013-08-26 20:16:06 +0200
commitc3923afa1f72cc8963b641472dd91bcaa99785bf (patch)
tree1947f37c6a0ec1d70a56b1c941086e352f0277a3 /channels
parentd1e6221b25ae7581aade3323da6d9893b2e428b6 (diff)
downloadfreerdp-c3923afa1f72cc8963b641472dd91bcaa99785bf.tar.gz
freerdp-c3923afa1f72cc8963b641472dd91bcaa99785bf.tar.bz2
freerdp-c3923afa1f72cc8963b641472dd91bcaa99785bf.zip
Fixed initialization of serial device, now aborting pending
read / write operations.
Diffstat (limited to 'channels')
-rw-r--r--channels/serial/client/serial_main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/channels/serial/client/serial_main.c b/channels/serial/client/serial_main.c
index d2ff16a48..80a5435bf 100644
--- a/channels/serial/client/serial_main.c
+++ b/channels/serial/client/serial_main.c
@@ -113,6 +113,14 @@ static void serial_process_irp_create(SERIAL_DEVICE* serial, IRP* irp)
else
{
serial->tty = tty;
+
+ serial_abort_single_io(serial, serial->timeout_id, SERIAL_ABORT_IO_NONE,
+ STATUS_CANCELLED);
+ serial_abort_single_io(serial, serial->timeout_id, SERIAL_ABORT_IO_READ,
+ STATUS_CANCELLED);
+ serial_abort_single_io(serial, serial->timeout_id, SERIAL_ABORT_IO_WRITE,
+ STATUS_CANCELLED);
+
DEBUG_SVC("%s(%d) created.", serial->path, FileId);
}
@@ -332,7 +340,6 @@ static void* serial_thread_func(void* arg)
if (WAIT_OBJECT_0 == status)
break;
- serial->nfds = 1;
FD_ZERO(&serial->read_fds);
FD_ZERO(&serial->write_fds);