=== Ruby posix_mq 2.4.1 / 2018-01-31 00:02 UTC

  This release fixes a problem affecting users of newer clang (5.x+)
  and Ruby 2.5.0:  https://bugs.ruby-lang.org/issues/14425
  There is no need to upgrade if using gcc or Ruby <= 2.4.

  * drop extra args to rb_funcall

=== Ruby posix_mq 2.4.0 / 2017-03-20 19:43 UTC

  Most notably there are some FreeBSD fixes.  There are also
  some minor internal cleanups and doc updates.

  7 changes since 2.3.0 (2016-02-02):

        doc: remove private email address
        doc: update bogomips.org URLs to HTTPS
        set correct condition for setting id_autoclose
        test_posix_mq: get tests passing under FreeBSD 10.3
        TypedData C-API conversion
        freeze internal objects
        build: remove build-time olddoc dependency

=== Ruby posix_mq 2.3.0 - updates for Ruby 2.3+ / 2016-02-02 23:28 UTC

  This release updates our POSIX_MQ#close to match the idempotent
  IO#close behavior under Ruby 2.3 and later.  Previous Ruby versions
  continue to be supported, but POSIX_MQ#close remains non-idempotent
  when built against old Ruby versions.

  4 changes since v2.2.0:

        enable frozen_string_literal for Ruby 2.3+
        support idempotent POSIX_MQ#close
        README: remove cgit and ssoma references
        build: use '--local' domain for dev gem install

=== Ruby posix_mq 2.2.0 - support FD adoption / 2015-01-16 20:23 UTC

  The major feature of this release is the POSIX_MQ.for_fd class
  method thanks to Christopher Lord.  The addition of the
  POSIX_MQ#autoclose? and POSIX_MQ#autoclose= round out the new
  feature set.  All of the new methods are analogous to their
  counterparts in the core IO class.

  The mailing list is also moved to ruby-posix-mq@bogomips.org
  and no longer requires subscription.  Existing librelist
  subscribers will need to resubscribe manually (as I have no
  way of doing so automatically):

  	ruby-posix-mq+subscribe@bogomips.org

  HTTP archives and instructions for extracting the mail archives
  via git are available at:

  	http://bogomips.org/ruby-posix-mq/

  Christopher Lord (1):
        Ability to adopt file descriptors

  Eric Wong (16):
        for_fd: delay assigning to mq->des until after mq_getattr
        test_posix_mq: rewrite test to not depend on DL or alarm
        support autoclose= and autoclose?
        pack rw_args struct
        change mailing list to ruby-posix-mq@bogomips.org
        doc: remove --sanitize-html option for pandoc
        switch documentation to olddoc
        LICENSE: allow all future versions of LGPLv3+
        favor comparisons against zero instead of -1
        pkg.mk: misc tweaks and updates
        gemspec: remove rdoc_options setting
        .gitignore: add placeholder
        gemspec: use SPDX license abbreviation
        misc doc updates
        POSIX_MQ#autoclose= propagates to IO
        GNUmakefile: ordering fix for building gem

=== posix_mq 2.1.0 - ensure compatibility with future Rubies / 2014-02-15 13:35 UTC

  * avoid deprecated rb_thread_blocking_region in Ruby 2.0/2.1
  * prepare for rb_thread_blocking_region removal

=== posix_mq 2.0.0 - a minor API change + FreeBSD fixes / 2012-08-06 21:02 UTC

  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.

=== posix_mq 1.0.0 - kinder, gentler message queues / 2011-03-01 09:17 UTC

  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.

=== posix_mq 0.8.0pre - kinder, gentler and less exceptional / 2011-02-27 11:13 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.

  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...

  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.

  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.

=== posix_mq 0.7.0 - cleanups + portability fixes / 2011-02-24 00:32 UTC

  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.

=== posix_mq 0.6.0 - Rubinius support / 2010-12-25 08:28 UTC

  Rubinius 1.2 as well as Ruby 1.9.  Ruby 1.8 works except it will
  block the entire interpreter for blocking operations.  Spurious
  errors during GC for POSIX_MQ#to_io users are now avoided.

=== posix_mq 0.5.1 / 2010-05-09 08:10 UTC

  Fix POSIX_MQ#notify(&block) usage, this regression was
  introduced in 0.4.0 and our tests for it were broken, as well.

=== posix_mq 0.5.0 / 2010-05-05 02:54 UTC

  Uncommonly raised exceptions due to programmer error are now
  raised more safely with respect to the MRI garbage collector.

  The "posix-mq.rb" executable has been renamed to "posix-mq-rb"
  to respect RPS and is also hopefully easier to type/read when
  used in scripts.  I'm preserving the "rb" in the name since I
  hope to have a more portable, C-only version someday.

  Minor cleanups and documentation now uses RDoc 2.5.x

=== posix_mq 0.4.0 / 2010-03-13 09:44 UTC

  Small bugfixes and small API changes to avoid potential
  issues/misuse are the focus of this release.

  For non-blocking operation, the GVL is no longer bounced.  This
  reduces synchronization/scheduling overhead when used in
  non-blocking applications.

  Small cleanups and documentation improvements, too.

  * make POSIX_MQ#dup and POSIX_MQ#clone no-op
  * do not release GVL for non-blocking operations
  * do not release GVL when unlinking/opening
  * POSIX_MQ#<< does not release GVL when non-blocking
  * avoid shadow warnings
  * README: add mailing list archives info
  * POSIX_MQ#to_io works under FreeBSD, too
  * fix potential race with notify(&block)
  * add TODO item for using netlink under Linux
  * remove non-portable #warning CPP directive
  * ensure POSIX_MQ#name is clobber-proof

=== posix_mq 0.3.1 / 2010-02-13 12:05 UTC

  This fixes a misuse of the Ruby API leading to memory leaks in
  cases where message queues are continually opened and closed
  throughout the lifetime of the application.

  Fortunately applications have little reason to repeatedly open
  and close message queue descriptors: they are
  multi-thread/multi-process-safe in every way imaginable and also
  capable of non-blocking operation.

=== posix_mq 0.3.0 / 2010-01-09 23:11 UTC

  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.

=== posix_mq 0.2.0 / 2010-01-03 05:52 UTC

  This release fixes notification (un)registration and should be
  fully-supported on modern FreeBSD (7.2+) releases.

  POSIX_MQ#notify=nil correctly unregister notification requests.
  POSIX_MQ#notify=false now provids the no-op SIGEV_NONE
  functionality.  Under FreeBSD, using IO.select on POSIX_MQ
  objects is now possible as it has always been under Linux.

=== posix_mq 0.1.0 - initial release / 2010-01-02 11:01 UTC

  initial

