summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2011-08-05 01:47:26 +0000
committercliechti <cliechti@f19166aa-fa4f-0410-85c2-fa1106f25c8a>2011-08-05 01:47:26 +0000
commitdba192101727a7f8fce958b62b3da16c9c798d61 (patch)
treeb329b094df2a8f32b2aff8227824ae88e818901a
parent0ec1a79e98607a337903894b36e8839aad4943eb (diff)
downloadpyserial-dba192101727a7f8fce958b62b3da16c9c798d61.tar.gz
- fix for SF 3057499
git-svn-id: http://svn.code.sf.net/p/pyserial/code/trunk/pyserial@403 f19166aa-fa4f-0410-85c2-fa1106f25c8a
-rw-r--r--CHANGES.txt7
-rw-r--r--serial/serialwin32.py11
2 files changed, 12 insertions, 6 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index c4b2cca..b50e4a8 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -151,7 +151,7 @@ Transition to the Python 2.0 series:
This dictionary can be used to convert parity constants to meaningful
strings.
- Each Serial class and instance has a list of supported values:
- ``BAUDRATES``, ``BYTESIZES``, ``PARITIES``, ``STOPBITS``
+ ``BAUDRATES``, ``BYTESIZES``, ``PARITIES``, ``STOPBITS``Ggg
(i.e. ``serial.Serial.BAUDRATES or s = serial.Serial; s.BAUDRATES``)
these values can be used to fill in value sin GUI dialogs etc.
- Creating a ``Serial()`` object without port spec returns an unconfigured,
@@ -413,3 +413,8 @@ Bugfixes:
- [SF 3093882] calling open() on an already open port now raises an exception
- [SF 3245627] connection-lost let rfc2217 hangs in closed loop
+
+Bugfixes (win32):
+
+- [SF 3057499] writeTimeoutError when write Timeout is 0
+
diff --git a/serial/serialwin32.py b/serial/serialwin32.py
index 9fca6e2..c510478 100644
--- a/serial/serialwin32.py
+++ b/serial/serialwin32.py
@@ -255,11 +255,12 @@ class Win32Serial(SerialBase):
err = win32.WriteFile(self.hComPort, data, len(data), ctypes.byref(n), self._overlappedWrite)
if not err and win32.GetLastError() != win32.ERROR_IO_PENDING:
raise SerialException("WriteFile failed (%s)" % ctypes.WinError())
- # Wait for the write to complete.
- #~ win32.WaitForSingleObject(self._overlappedWrite.hEvent, win32.INFINITE)
- err = win32.GetOverlappedResult(self.hComPort, self._overlappedWrite, ctypes.byref(n), True)
- if n.value != len(data):
- raise writeTimeoutError
+ if self._writeTimeout != 0: # if blocking (None) or w/ write timeout (>0)
+ # Wait for the write to complete.
+ #~ win32.WaitForSingleObject(self._overlappedWrite.hEvent, win32.INFINITE)
+ err = win32.GetOverlappedResult(self.hComPort, self._overlappedWrite, ctypes.byref(n), True)
+ if n.value != len(data):
+ raise writeTimeoutError
return n.value
else:
return 0