lib/ws-io.rb in ws-io-1.1.3 vs lib/ws-io.rb in ws-io-1.1.4
- old
+ new
@@ -18,10 +18,11 @@
@port = port
@domains = domains
fake_io
+ Thread.abort_on_exception = true
m = Mutex.new
c = ConditionVariable.new
@server_thread = Thread.start do
@server = WebSocketServer.new(:accepted_domains => domains, :port => port)
@@ -37,14 +38,12 @@
else # ## ## ## ## ######## ######## ## ## ####
ws.handshake("404 Not Found") # ### ### ## ## ## ## ## ## ####
end # #### #### ## ## ## ## ## ## ####
stop_server # ## ### ## ## ## ## ###### ### ##
end # ## ## ## ## ## ## ## ##
- rescue => e # ## ## ## ## ## ## ## ## ####
- g e # ## ## ####### ## ######## ## ## ####
- end #
- end #
+ end # ## ## ## ## ## ## ## ## ####
+ end # ## ## ####### ## ######## ## ## ####
#
Thread.start do #
m.synchronize { c.wait(m) } # <###
@after_block.call if @after_block
loop do
@@ -68,29 +67,24 @@
stop_server
end
end
self
- rescue SignalException, StandardError => e
- g e
- unfake_io
- stop_server
- raise
- rescue Exception => e
- g e
- unfake_io
- stop_server
- raise
end
def after(&block)
@after_block = block
self
end
def join
@server_thread.join if @server_thread
+ rescue Exception => e
+ g e
+ rescue
+ unfake_io
+ stop_server
end
def open
js_paths = %w(jquery.min.js autoresize.jquery.js).map do |js|
'file://localhost' + File.expand_path("../public/#{js}", __FILE__)
@@ -127,10 +121,10 @@
g e
end
def stop_server
ws.close
- @server.tcp_server.close
+ @server.tcp_server.close unless @server.tcp_server.closed?
g 'stop_server'
rescue => e
g e
end