summaryrefslogtreecommitdiffstats
path: root/tests/socket.test
diff options
context:
space:
mode:
authoroehhar <harald.oehlmann@elmicron.de>2014-12-07 12:17:24 (GMT)
committeroehhar <harald.oehlmann@elmicron.de>2014-12-07 12:17:24 (GMT)
commit0bd2a5add3396f7f6bcc4deff75bf70de91d384e (patch)
tree7d28ef3bee6ac92c8018ec42afa89c5e06db7a71 /tests/socket.test
parent2b5841cce3dace5f052236b0f3770263222d426d (diff)
downloadtcl-0bd2a5add3396f7f6bcc4deff75bf70de91d384e.zip
tcl-0bd2a5add3396f7f6bcc4deff75bf70de91d384e.tar.gz
tcl-0bd2a5add3396f7f6bcc4deff75bf70de91d384e.tar.bz2
test for bug [c6ed4acfd8]: running async socket connect with other connect established will block tcl as it goes in an infinite loop in vwait
Diffstat (limited to 'tests/socket.test')
-rw-r--r--tests/socket.test18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/socket.test b/tests/socket.test
index eeea044..4f90e51 100644
--- a/tests/socket.test
+++ b/tests/socket.test
@@ -2343,6 +2343,24 @@ test socket-14.17 {empty -sockname while [socket -async] connecting} \
catch {close $client}
} -result {}
+# test for bug c6ed4acfd8: running async socket connect with other connect
+# established will block tcl as it goes in an infinite loop in vwait
+test socket-14.18 {bug c6ed4acfd8: running async socket connect made other connect block} \
+ -constraints {socket} \
+ -body {
+ proc accept {channel address port} {}
+ set port [randport]
+ set ssock [socket -server accept $port]
+ set csock1 [socket -async localhost [randport]]
+ set csock2 [socket localhost $port]
+ after 1000 {set done ok}
+ vwait done
+} -cleanup {
+ catch {close $ssock}
+ catch {close $csock1}
+ catch {close $csock2}
+ } -result {}
+
set num 0
set x {localhost {socket} 127.0.0.1 {supported_inet} ::1 {supported_inet6}}