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
commit8237a3ee0ec947092dce352384617bf5f13224b5 (patch)
treea8bee56c01b2cda47968265d70fbac7de37eca47
parent0567392d974de2e4437ae50b579f5f1e9d93e316 (diff)
downloadpyserial-8237a3ee0ec947092dce352384617bf5f13224b5.tar.gz
fix bug 1679013
git-svn-id: http://svn.code.sf.net/p/pyserial/code/trunk@171 f19166aa-fa4f-0410-85c2-fa1106f25c8a
-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)