win32: fix return value of non-blocking write, fixes #162
diff --git a/CHANGES.rst b/CHANGES.rst
index 31912b8..d03cefa 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -666,3 +666,6 @@
port created by socat on OS X
- [#157] Broken handling of CMSPAR in serialposix.py
+Bugfixes (win32):
+
+- [#162] Write in non-blocking mode returns incorrect value on windows
diff --git a/serial/serialwin32.py b/serial/serialwin32.py
index 2927864..2de6a4b 100644
--- a/serial/serialwin32.py
+++ b/serial/serialwin32.py
@@ -320,7 +320,10 @@
return n.value # canceled IO is no error
if n.value != len(data):
raise writeTimeoutError
- return n.value
+ return n.value
+ else:
+ # no info on true length provided by OS function in async mode
+ return len(data)
else:
return 0