         # File lib/pr_eventmachine.rb, line 376
    376:   def open_loopbreaker
    377:           # Can't use an IO.pipe because they can't be set nonselectable in Windows.
    378:           # Pick a random localhost UDP port.
    379:     #@loopbreak_writer.close if @loopbreak_writer
    380:     #rd,@loopbreak_writer = IO.pipe
    381:         @loopbreak_reader = UDPSocket.new
    382:         @loopbreak_writer = UDPSocket.new
    383:         bound = false
    384:         100.times {
    385:                 @loopbreak_port = rand(10000) + 40000
    386:                 begin
    387:                         @loopbreak_reader.bind "localhost", @loopbreak_port
    388:                         bound = true
    389:                         break
    390:                 rescue
    391:                 end
    392:         }
    393:         raise "Unable to bind Loopbreaker" unless bound
    394:         LoopbreakReader.new(@loopbreak_reader)
    395:   end