patch 7.4.1404
Problem:    ch_read() doesn't time out on MS-Windows.
Solution:   Instead of WM_NETBEANS use select(). (Yukihiro Nakadaira)
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 2e74e9f..69922b1 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -131,10 +131,10 @@
     call assert_false(1, 's:responseHandle was not set')
   else
     call assert_equal(handle, s:responseHandle)
+    unlet s:responseHandle
   endif
   call assert_equal('got it', s:responseMsg)
 
-  unlet s:responseHandle
   let s:responseMsg = ''
   call ch_sendexpr(handle, 'hello!', {'callback': function('s:RequestHandler')})
   sleep 10m
@@ -142,6 +142,7 @@
     call assert_false(1, 's:responseHandle was not set')
   else
     call assert_equal(handle, s:responseHandle)
+    unlet s:responseHandle
   endif
   call assert_equal('got it', s:responseMsg)
 
@@ -186,15 +187,12 @@
   call assert_equal('ok', ch_sendexpr(handle, 'empty-request'))
 
   " Reading while there is nothing available.
-  " TODO: make this work for MS-Windows
-  if has('unix')
-    call assert_equal(v:none, ch_read(handle, {'timeout': 0}))
-    let start = reltime()
-    call assert_equal(v:none, ch_read(handle, {'timeout': 333}))
-    let elapsed = reltime(start)
-    call assert_true(reltimefloat(elapsed) > 0.3)
-    call assert_true(reltimefloat(elapsed) < 0.6)
-  endif
+  call assert_equal(v:none, ch_read(handle, {'timeout': 0}))
+  let start = reltime()
+  call assert_equal(v:none, ch_read(handle, {'timeout': 333}))
+  let elapsed = reltime(start)
+  call assert_true(reltimefloat(elapsed) > 0.3)
+  call assert_true(reltimefloat(elapsed) < 0.6)
 
   " Send without waiting for a response, then wait for a response.
   call ch_sendexpr(handle, 'wait a bit',  {'callback': 0})