Skip to content

Commit c96dc4f

Browse files
headiuseregon
authored andcommitted
Try to close server during shutdown
If the server never accepts a client, joining on this thread will hang the spec and never be terminated because it happens in an "after" section. Instead, we try to close the server if it has not already been closed, so it will terminate gracefully. See #925
1 parent ada0e2e commit c96dc4f

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

library/socket/fixtures/classes.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,14 @@ def service(socket)
118118

119119
socket.send data, 0
120120
ensure
121-
socket.close
121+
socket.close unless socket.closed?
122122
end
123123
end
124124

125125
def shutdown
126126
log "SpecTCPServer shutting down"
127+
@server.close unless @server.closed?
127128
@thread.join
128-
@server.close
129129
end
130130

131131
def log(message)

library/socket/udpsocket/send_spec.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@
1616
retry
1717
end
1818
ensure
19-
@server.close if !@server.closed?
19+
@server.close unless @server.closed?
2020
end
2121
end
2222
Thread.pass while @server_thread.status and !@port
2323
end
2424

2525
after :each do
26+
@server.close unless @server.closed?
2627
@server_thread.join
2728
end
2829

0 commit comments

Comments
 (0)