File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -58,3 +58,38 @@ def handle_closing():
58
58
assert ctx ["closing_event_called" ]
59
59
assert ctx ["was_still_connected" ]
60
60
assert closing_was_handled_synchronously_before_close
61
+
62
+
63
+ def test_multithreaded_connect_disconnect ():
64
+ CONNECTIONS = 30
65
+ clients = []
66
+
67
+ def connect (clients ):
68
+ ros = Ros (url )
69
+ ros .run ()
70
+ clients .append (ros )
71
+
72
+ # First connect all
73
+ threads = []
74
+ for _ in range (CONNECTIONS ):
75
+ thread = threading .Thread (target = connect , args = (clients ,))
76
+ thread .daemon = False
77
+ thread .start ()
78
+ threads .append (thread )
79
+
80
+ for thread in threads :
81
+ thread .join ()
82
+
83
+ # Assert connection status
84
+ for ros in clients :
85
+ assert ros .is_connected
86
+
87
+ # Now disconnect all
88
+ for ros in clients :
89
+ ros .close ()
90
+
91
+ time .sleep (0.5 )
92
+
93
+ # Assert connection status
94
+ for ros in clients :
95
+ assert ros .is_connected == False
You can’t perform that action at this time.
0 commit comments