about summary refs log tree commit homepage
DateCommit message (Collapse)
2014-02-15posix_mq 2.1.0 - ensure compatibility with future Rubies v2.1.0
* avoid deprecated rb_thread_blocking_region in Ruby 2.0/2.1 * prepare for rb_thread_blocking_region removal
2014-02-15avoid deprecated rb_thread_blocking_region in Ruby 2.0/2.1
This will be removed in Ruby 2.2, so avoid the deprecation warning.
2014-02-09prepare for rb_thread_blocking_region removal
It'll be OK to use rb_thread_call_without_gvl when rb_thread_blocking_region is not detectable at all. We still use rb_thread_blocking_region for Ruby 2.0-2.1 because rb_thread_call_without_gvl was detectable in 1.9.3, but not usable as an internal symbol. ref: https://bugs.ruby-lang.org/issues/9502
2013-09-30Rakefile: kill raa_update task
RAA is dead.
2012-08-06pkg.mk: update
2012-08-06posix_mq 2.0.0 - a minor API change + FreeBSD fixes v2.0.0
Blocking methods no longer raise Errno::EINTR (to match Ruby IO semantics, making code easier to work with). There are also many FreeBSD-related fixes thanks to Hleb Valoshka <375gnu@gmail.com> and small code cleanups.
2012-07-12test: relax test timings for timed* tests
On my i386-freebsd9 VM, this takes just longer than the maximum allowable time.
2012-07-12extconf: fix __mq_oshandle() detection on FreeBSD
We need to have -lrt in LDFLAGS before we can detect it.
2012-07-12test: disable IO.select test if #to_io is missing
2012-07-12ext: fix type inconsistencies for int vs mqd_t retvals
Somehow I mixed up return values for mq_* functions that return "int". This was noticed on FreeBSD where mqd_t is NOT an integer.
2012-07-12notify: set lower bound for notify stack size
Some OSes have ridiculously low boundaries and we don't want mysterious failures on them
2012-07-05blocking functions do not raise Errno::EINTR
Blocking functions should not raise Errno::EINTR to match existing semantics of Ruby IO methods (e.g. IO.select, IO#read, IO#write). This makes user code easier to read/write. Like th Ruby methods we emulate, we only reacquire the GVL on EINTR to fire signal handlers, but otherwise emulate SA_RESTART semantics. This is a backwards-incompatible API change (but unlikely to break existing code).
2012-07-03Add libc names for Debian GNU/kFreeBSD and FreeBSD in tests.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
2012-07-03Fix call to DL::Function.new in tests
The 3rd argument of DL::Function.new is ABI type, not a return type. Signed-off-by: Eric Wong <normalperson@yhbt.net>
2011-06-16fix compiler warnings, oops
CFLAGS=-Wall somehow got disabled in my Ruby installation...
2011-06-14num2timespec: remove needless double-assignment
Oops
2011-06-14no need to rb_intern("*")
'*' works just the same
2011-03-01posix_mq 1.0.0 - kinder, gentler message queues v1.0.0
There is one backwards-incompatible API change: POSIX_MQ#send returns +true+ on success instead of +nil+ for consistency with POSIX_MQ#trysend. 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. 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.
2011-03-01make methods that should be private, private
So private we won't mention them in the commit message!
2011-03-01remove unused tryinit function
Something I considered but decided wasn't worth doing.
2011-03-01POSIX_MQ#send returns +true+ on success
This is to be consistent with POSIX_MQ#trysend
2011-03-01finalize try* interfaces
Consider them good enough for a 1.0.0 release
2011-02-27posix-mq-rb: always prefer write-in-full behavior
In case somebody made the receiving pipe non-blocking, we want the command-line tool to succeed.
2011-02-27fix warnings and enable them for tests
Cleaner code anyways.
2011-02-27posix-mq-rb: use IO#binmode to get binary IOs
Avoids warnings this way
2011-02-27doc: note that the try* interfaces are not final
But they'll be pushed to the site for greater visibility.
2011-02-27bump version to 0.8.0pre v0.8.0pre
Remove the VERSION constant, it's cruft.
2011-02-27doc: fix doc generation for manpage
Oops
2011-02-27add trysend, tryreceive, and tryshift interfaces
These are kinder and less exceptional than their non-trying counterparts as generating exceptions is expensive for common EAGAIN errors.
2011-02-27eliminate needless global (cPOSIX_MQ)
It can be local variable
2011-02-27run GC on ENOSPC when calling mq_open()
It could work...
2011-02-27Symbols are VALUEs, not IDs
Oops :x
2011-02-27tests: do not require Fiddle for Ruby 1.9
It's only available when compiled with libffi.
2011-02-27Do not trust locally cached mq_flags
These flags can be changed in the parent or child process, so we will always have to run mq_getattr() to check it. This removes the GVL-keeping non-blocking optimizations but we'll gain some soon.
2011-02-23cleanup DL usage for alarm() test
2011-02-23fix test alarm() case for Ruby 1.9
DL in Ruby 1.9 isn't the same
2011-02-23posix_mq 0.7.0 - cleanups + portability fixes v0.7.0
This release now works for systems other than Linux and FreeBSD that support POSIX message queues. This is usable for systems without mq_timedsend() or mq_timedreceive() but with the non-timed variants (timeouts wont work). Thanks to Tadeusz Bochan for testing. Ruby posix_mq is now dual-licensed under the GPLv2 (as well as the preferred LGPLv3) for compatibility with existing GPLv2-only code.
2011-02-23doc: full rdoc coverage!
2011-02-23doc: add copy of GPLv2
For completeness, the LGPLv3 remains the preferred license.
2011-02-23doc: note that timeout is not always supported
Maybe people will just upgrade to newer systems eventually.
2011-02-23README: update mailing list notes
If it's not clear, we hate HTML.
2011-02-23added a note about em-posixmq for EventMachine users
ref: http://mid.gmane.org/AANLkTimNcWKqNSbD5GL76Z9rS3Gfi3uGusPksD2Eo+=P@mail.gmail.com
2011-02-23doc: discourage the use of notify
POSIX_MQ#notify(&block) mostly sucks.
2011-02-23unindent class methods
No need to waste indentation and make eyes wander.
2011-02-23test for alarm() working properly to interrupt
Some systems without mq_timedsend/mq_timedreceive need to use alarm() or similar (setitimer()) to interrupt timed-out mq_send/mq_receive calls, so we need to handle EINTR properly.
2011-02-23update URLs for git and cgit
While the old URLs still work, bogomips.org went on a URL diet
2011-02-23fix MQ_IO_NIL_P and MQ_IO_CLOSE macros
These cannot be cast to void since its value is meaningful.
2011-02-23test: fix GC test for systems without POSIX_MQ#to_io
Not all systems can convert POSIX_MQ to IO objects.
2011-02-22LICENSE: dual license, adding GPLv2
This makes us explicitly compatible with GPLv2-only programs.
2011-02-22attempt to support systems w/o mq_timedsend/mq_timedreceive
Some ancient systems don't support mq_timedsend and mq_timedreceive but somehow manage to support other POSIX mq_* functions.