summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2008-06-19 00:29:52 +0000
committercliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2008-06-19 00:29:52 +0000
commitb61320866cbbfc8a01c410c66a9d6c4484f1cc14 (patch)
treea8bee56c01b2cda47968265d70fbac7de37eca47
parent71058bb87a0ffd827c885a4004b3299210b4b0a3 (diff)
downloadpyserial-git-b61320866cbbfc8a01c410c66a9d6c4484f1cc14.tar.gz
fix bug 1679013
-rw-r--r--pyserial/CHANGES.txt1
-rw-r--r--pyserial/serial/serialwin32.py12
2 files changed, 9 insertions, 4 deletions
diff --git a/pyserial/CHANGES.txt b/pyserial/CHANGES.txt
index 0cdf246..95bf6ff 100644
--- a/pyserial/CHANGES.txt
+++ b/pyserial/CHANGES.txt
@@ -270,4 +270,5 @@ Bugfixes (posix):
Bugfixes (win32):
- [Bug 1520357] Handle leak
+- [Bug 1679013] Ignore excpetion raised by SetCommTimeout() in close().
- [Bug 1938118] process hang forever under XP
diff --git a/pyserial/serial/serialwin32.py b/pyserial/serial/serialwin32.py
index eb3e3e4..ead5ec5 100644
--- a/pyserial/serial/serialwin32.py
+++ b/pyserial/serial/serialwin32.py
@@ -11,7 +11,7 @@ import win32event # We use events and the WaitFor[Single|Multiple]Objects functi
import win32con # constants.
from serialutil import *
-VERSION = "$Revision: 1.39 $".split()[1] #extract CVS version
+VERSION = "$Revision: 1.40 $".split()[1] #extract CVS version
#from winbase.h. these should realy be in win32con
MS_CTS_ON = 16
@@ -164,9 +164,13 @@ class Serial(SerialBase):
"""Close port"""
if self._isOpen:
if self.hComPort:
- #Restore original timeout values:
- win32file.SetCommTimeouts(self.hComPort, self._orgTimeouts)
- #Close COM-Port:
+ try:
+ # Restore original timeout values:
+ win32file.SetCommTimeouts(self.hComPort, self._orgTimeouts)
+ except win32file.error:
+ # ignore errors. can happen for unplugged USB serial devices
+ pass
+ # Close COM-Port:
win32file.CloseHandle(self.hComPort)
win32file.CloseHandle(self._overlappedRead.hEvent)
win32file.CloseHandle(self._overlappedWrite.hEvent)