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.