Posix_mq 0.3.0 - notify(&block) + 1.8.6 fix

POSIX message queues allow local processes to exchange data in the form
of messages. This API is distinct from that provided by System V
message queues, but provides similar functionality.

Changes:

This release adds a few new API methods, fixes MRI 1.8.6
support. We should now have full feature parity with
underlying POSIX message queue C API.

  • POSIX_MQ#notify(&block)
    RDoc: http://bogomips.org/ruby_posix_mq/POSIX_MQ.html#M000001
    This is only supported on platforms that implement
    SIGEV_THREAD with mq_notify(3) (tested with glibc + Linux).
    Other platforms will have to continue to rely on signal
    notifications via POSIX#notify=signal, or IO notifications
    in FreeBSD (and Linux).

  • POSIX_MQ#shift([buffer [,timeout]])
    Shorthand for the common “POSIX_MQ#receive.first”
    when you do not care for priority of the received message.

Rev, EventMachine and Reactor support are planned for
Linux, FreeBSD and possibly any other platforms where POSIX
message queues are implemented with a file descriptor.