ChangeLog in posix_mq-0.2.0 vs ChangeLog in posix_mq-0.3.0
- old
+ new
@@ -1,6 +1,120 @@
ChangeLog from git://git.bogomips.org/ruby_posix_mq.git ()
+ commit 2e420820d3b3fb228c810937539f95a618a2c271
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Sat Jan 9 22:52:27 2010 +0000
+
+ posix_mq 0.3.0
+
+ 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.
+
+ commit 2c71257b2b95e737088726ffc963b4e72f1b5455
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Sat Jan 9 22:49:49 2010 +0000
+
+ MRI 1.8 does not have rb_str_flush
+
+ It's Rubinius-specific and we use rb_str_resize
+ there anyways...
+
+ commit 531106e51e519458d37bed3721da4eff2f163206
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Fri Jan 8 11:30:49 2010 -0800
+
+ no point in non-blocking for fd notifications
+
+ It's not needed since the native thread will retry in the
+ unlikely case of EINTR/EAGAIN. And writing one byte to a pipe
+ that's guaranteed by POSIX to be at least 512 bytes is highly
+ unlikely.
+
+ It's also bad because F_SETFL takes the big kernel lock under
+ Linux (and possibly other systems), and doing it unnecessarily
+ is a waste of system cycles.
+
+ commit d03c76ae11ca6294e05262df747e4d43822ada73
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Fri Jan 8 11:25:06 2010 -0800
+
+ mode_t is usually unsigned
+
+ Most used open modes are well under INT_MAX, however
+
+ commit b3c31cf444e2ca3dae0f6d2370944bfbf3382d88
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Thu Jan 7 01:45:25 2010 -0800
+
+ add POSIX_MQ#shift helper method
+
+ This acts like POSIX_MQ#receive but only returns the message
+ without the priority.
+
+ commit 3700db51399e4949ed314ad0545d037b7762064e
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Thu Jan 7 09:28:57 2010 +0000
+
+ POSIX_MQ#notify only works on GNU/Linux for now
+
+ SIGEV_THREAD is not easy to implement, so many platforms
+ do not implement it.
+
+ commit 40d61f55ac53e3cd2f229d0b032da03032e3d53d
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Thu Jan 7 00:37:57 2010 -0800
+
+ POSIX_MQ#notify block execution on message received
+
+ This is implementation uses both a short-lived POSIX thread and
+ a pre-spawned Ruby Thread in a manner that works properly under
+ both Ruby 1.8 (green threads) and 1.9 (where Ruby Threads are
+ POSIX threads).
+
+ The short-lived POSIX thread will write a single "\0" byte to
+ a pipe the Ruby Thread waits on. This operation is atomic
+ on all platforms. Once the Ruby Thread is woken up from the
+ pipe, it will execute th block given to it.
+
+ This dual-thread implementation is inspired by the way glibc
+ implements mq_notify(3) + SIGEV_THREAD under Linux where the
+ kernel itself cannot directly spawn POSIX threads.
+
+ commit d8c8fb4155c1feea454abc3ed3f0a4b26e90be68
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Sun Jan 3 05:26:00 2010 +0000
+
+ fix warnings on platforms where mqd_t != int
+
+ The POSIX manpages specify the return values of all
+ mq_* functions besides mq_open(3) to be "int", not "mqd_t".
+
+ commit dbe5ed46e07b853e79e44141924a0166016e3e44
+ Author: Eric Wong <normalperson@yhbt.net>
+ Date: Sat Jan 2 23:19:34 2010 -0800
+
+ bump GIT-VERSION-GEN
+
+ Shouldn't affect most people since they should just
+ take code from git...
+
commit fd2fcdeee6b44f7854255cb7e01c81db3cd2d99c
Author: Eric Wong <normalperson@yhbt.net>
Date: Sun Jan 3 05:46:45 2010 +0000
posix_mq 0.2.0