Backend to act as a UNIX domain socket server.
UNIX domain socket on which the server is listening for connections.
Free up resources used by the backend.
# File lib/thin/backends/unix_server.rb, line 34 def close remove_socket_file end
Connect the server
# File lib/thin/backends/unix_server.rb, line 15 def connect at_exit { remove_socket_file } # In case it crashes old_umask = File.umask(0) begin EventMachine.start_unix_domain_server(@socket, UnixConnection, &method(:initialize_connection)) # HACK EventMachine.start_unix_domain_server doesn't return the connection signature # so we have to go in the internal stuff to find it. @signature = EventMachine.instance_eval{@acceptors.keys.first} ensure File.umask(old_umask) end end
Stops the server
# File lib/thin/backends/unix_server.rb, line 29 def disconnect EventMachine.stop_server(@signature) end
# File lib/thin/backends/unix_server.rb, line 38 def to_s @socket end
# File lib/thin/backends/unix_server.rb, line 43 def remove_socket_file File.delete(@socket) if @socket && File.exist?(@socket) end
# File lib/thin/backends/unix_server.rb, line 8 def initialize(socket) raise PlatformNotSupported, 'UNIX domain sockets not available on Windows' if Thin.win? @socket = socket super() end