Since MRI 1.9, a pipe has been used for internal signalling communication. A C API, rb_reserved_fd_p(), has been provided to check if a file descriptor is used by the VM or not.
Currently, Urchin closes all FDs > 2. For some reason, I haven't found this to be a problem under 1.9, but testing with Ruby 2.0.0-dev does give intermittent problems:
Since MRI 1.9, a pipe has been used for internal signalling communication. A C API,
rb_reserved_fd_p()
, has been provided to check if a file descriptor is used by the VM or not.Currently, Urchin closes all FDs > 2. For some reason, I haven't found this to be a problem under 1.9, but testing with Ruby 2.0.0-dev does give intermittent problems:
Urchin should use the C API, either with a C extension or using FFI.