module ServerEngine::RbWinSock
Public Class Methods
raise_last_error(name)
click to toggle source
# File lib/serverengine/winsock.rb, line 108 def self.raise_last_error(name) errno = rb_w32_map_errno(WinSock.last_error) raise SystemCallError.new(name, errno) end
wrap_io_handle(sock_class, handle, flags)
click to toggle source
# File lib/serverengine/winsock.rb, line 115 def self.wrap_io_handle(sock_class, handle, flags) begin fd = rb_w32_wrap_io_handle(handle, flags) if fd < 0 raise_last_error("rb_w32_wrap_io_handle(3)") end sock = sock_class.for_fd(fd) wrapped = true sock.define_singleton_method(:handle) { handle } return sock ensure unless wrapped WinSock.CloseHandle(handle) end end end