posix_mq RubyGem user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [ANN] posix_mq 2.2.0 - POSIX Message Queues for Ruby
@ 2015-01-16 20:32  4% Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2015-01-16 20:32 UTC (permalink / raw)
  To: ruby-talk, ruby-posix-mq; +Cc: Christopher Lord

POSIX message queues allow local processes to exchange data in the form
of messages.  This API is distinct from that provided by System V
message queues, but provides similar functionality.

* Homepage: http://bogomips.org/ruby_posix_mq/
* public-inbox: ruby-posix-mq@bogomips.org
* git clone git://bogomips.org/ruby_posix_mq.git
* Atom feed: http://bogomips.org/ruby_posix_mq/NEWS.atom.xml
* Mailing list archives: http://bogomips.org/ruby-posix-mq/

Changes:

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

^ permalink raw reply	[relevance 4%]

* [PATCH] favor comparisons against zero instead of -1
@ 2015-01-11  3:19  7% Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2015-01-11  3:19 UTC (permalink / raw)
  To: ruby-posix-mq

This should allow faster instructions to be used in some cases.
Technically this may be less pedantically correct, but there is
enough existing code out there which does the same thing to
discourage kernel/libc developers from overloading negative
return values.

...And glibc even favors comparison against zero, too.
---
 ext/posix_mq/posix_mq.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ext/posix_mq/posix_mq.c b/ext/posix_mq/posix_mq.c
index 14fe819..78544c8 100644
--- a/ext/posix_mq/posix_mq.c
+++ b/ext/posix_mq/posix_mq.c
@@ -521,7 +521,7 @@ static VALUE s_unlink(VALUE self, VALUE name)
 {
 	int rv = mq_unlink(StringValueCStr(name));
 
-	if (rv == -1)
+	if (rv < 0)
 		rb_sys_fail("mq_unlink");
 
 	return INT2NUM(1);
@@ -549,7 +549,7 @@ static VALUE _unlink(VALUE self)
 	assert(TYPE(mq->name) == T_STRING && "mq->name is not a string");
 
 	rv = mq_unlink(RSTRING_PTR(mq->name));
-	if (rv == -1)
+	if (rv < 0)
 		rb_sys_fail("mq_unlink");
 
 	return self;
@@ -598,7 +598,7 @@ static VALUE _send(int sflags, int argc, VALUE *argv, VALUE self)
 
 retry:
 	WITHOUT_GVL(xsend, &x, RUBY_UBF_IO, 0);
-	if (x.retval == -1) {
+	if (x.retval < 0) {
 		if (errno == EINTR)
 			goto retry;
 		if (errno == EAGAIN && (sflags & PMQ_TRY))
@@ -632,7 +632,7 @@ static VALUE send0(VALUE self, VALUE buffer)
 
 retry:
 	WITHOUT_GVL(xsend, &x, RUBY_UBF_IO, 0);
-	if (x.retval == -1) {
+	if (x.retval < 0) {
 		if (errno == EINTR)
 			goto retry;
 		rb_sys_fail("mq_send");
@@ -814,7 +814,7 @@ static VALUE _close(VALUE self)
 	struct posix_mq *mq = get(self, 1);
 
 	if (! MQ_IO_CLOSE(mq)) {
-		if (mq_close(mq->des) == -1)
+		if (mq_close(mq->des) < 0)
 			rb_sys_fail("mq_close");
 	}
 	mq->des = MQD_INVALID;
@@ -901,12 +901,12 @@ static void my_mq_notify(mqd_t des, struct sigevent *not)
 {
 	int rv = mq_notify(des, not);
 
-	if (rv == -1) {
+	if (rv < 0) {
 		if (errno == ENOMEM) {
 			rb_gc();
 			rv = mq_notify(des, not);
 		}
-		if (rv == -1)
+		if (rv < 0)
 			rb_sys_fail("mq_notify");
 	}
 }
-- 
EW


^ permalink raw reply related	[relevance 7%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2015-01-11  3:19  7% [PATCH] favor comparisons against zero instead of -1 Eric Wong
2015-01-16 20:32  4% [ANN] posix_mq 2.2.0 - POSIX Message Queues for Ruby Eric Wong

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/ruby_posix_mq.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).