LATEST in posix_mq-0.8.0pre vs LATEST in posix_mq-1.0.0
- old
+ new
@@ -1,25 +1,17 @@
-=== posix_mq 0.8.0pre - kinder, gentler and less exceptional / 2011-02-27 11:13 UTC
+=== posix_mq 1.0.0 - kinder, gentler message queues / 2011-03-01 09:17 UTC
- This adds trysend, tryreceive, and tryshift interfaces to avoid
- exceptions on common EAGAIN errors for non-blocking users. EAGAIN
- during non-blocking messages is common when there are multiple
- readers/writer threads/processes working on the same queue.
+ There is one backwards-incompatible API change:
- trysend is like send, except it returns true for success and false for
- EAGAIN. send (still) returns nil, which I now consider a mistake but
- won't change until post-1.0...
+ POSIX_MQ#send returns +true+ on success instead of +nil+
+ for consistency with POSIX_MQ#trysend.
- tryreceive and tryshift are like receive and shift respectively,
- but they return nil for EAGAIN and the same return values
- for their non-shift variants.
+ This release adds the POSIX_MQ#trysend, POSIX_MQ#tryreceive and
+ POSIX_MQ#tryshift interfaces to avoid exceptions on common
+ EAGAIN errors for users of non-blocking queues.
- None of these methods call mq_setattr() beforehand to set the
- non-blocking flag, it assumes the user set it once before they were ever
- called and never changes it. Checking/setting the non-blocking flag
- every time is needless overhead and still subject to race conditions if
- multiple processes/queues keep flipping flag on the same queue
- descriptor.
-
- These interfaces are not yet final, feedback is appreciated
- at ruby.posix.mq@librelist.org.
+ Bugfixes: non-blocking behavior changes to a shared descriptor
+ in a different process are reflected immediately in the child
+ (this won't fix race conditions in your code, however).
+ Minor bugfixes for posix-mq-rb(1) and quieted warnings for
+ 1.9.3dev.