Sha256: 5217a02b1065ad9e059833e4f07ce9389f02a6e6754142dd3e7d7ae57a4303dd
Contents?: true
Size: 688 Bytes
Versions: 1
Compression:
Stored size: 688 Bytes
Contents
# frozen_string_literal: true require_relative './um_ext' require_relative 'uringmachine/dns_resolver' UM = UringMachine class UringMachine @@fiber_map = {} def spin(value = nil, &block) f = Fiber.new do |resume_value| block.(resume_value) rescue Exception => e STDERR.puts "Unhandled fiber exception: #{e.inspect}" STDERR.puts e.backtrace.join("\n") exit ensure @@fiber_map.delete(f) # yield control self.yield p :bad_bad_bad end schedule(f, value) @@fiber_map[f] = true f end def resolve(hostname, type = :A) @resolver ||= DNSResolver.new(self) @resolver.resolve(hostname, type) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
uringmachine-0.5 | lib/uringmachine.rb |