# File lib/pr_eventmachine.rb, line 316
316:     def initialize io
317:       @uuid = UuidGenerator.generate
318:       @io = io
319: 
320:       m = @io.fcntl(Fcntl::F_GETFL, 0)
321:       @io.fcntl(Fcntl::F_SETFL, Fcntl::O_NONBLOCK | m)
322:       # TODO, should set CLOEXEC on Unix?
323: 
324:       @close_scheduled = false
325:       @close_requested = false
326: 
327:       se = self; @io.instance_eval { @my_selectable = se }
328:       Reactor.instance.add_selectable @io
329:     end