about summary refs log tree commit homepage
path: root/ext/posix_mq/extconf.rb
DateCommit message (Collapse)
2016-02-02support idempotent POSIX_MQ#close
IO#close under Ruby 2.3 is idempotent, we shall follow suit with POSIX_MQ#close
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
2012-07-12extconf: fix __mq_oshandle() detection on FreeBSD
We need to have -lrt in LDFLAGS before we can detect it.
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.
2011-02-22extconf: remove unnecessary dir_config statement
It's all standard C library stuff.
2010-12-24add Rubinius support
Cleaner code, too, no more direct RSTRUCT usage.
2010-12-24remove rb_time_interval() and gettimeofday() dependency
This function isn't exported in the standard Ruby headers, it returns an aggregate value and isn't available in Rubinius, either, so nuke it. While we're at it, use clock_gettime() instead of gettimeofday() to avoid unnecessary timeval usage since mq_send/mq_receive rely on higher-precision timespecs instead.
2010-01-07POSIX_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.
2010-01-02support POSIX_MQ#to_io under FreeBSD
FreeBSD implements an __mq_oshandle(mqd_t mqd) function to convert mqd_t to integer file descriptors.
2010-01-02fix build under FreeBSD 7.2
FreeBSD seems to need some files explicitly included.
2010-01-02initial commit v0.1.0