sysvmq 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7705e20450c90577d603ea17aaedd9b00cb361ae
4
- data.tar.gz: 90973d795df822f14ce2c0efad3734d58496802b
3
+ metadata.gz: 328760516c12510088525cd9826745db77023e86
4
+ data.tar.gz: fdf3c3f4f43d10a5cfa0f55fd4733ed75d8bd810
5
5
  SHA512:
6
- metadata.gz: 582fe7249dc328068fe68811443f96a2c8fa7c89269ac06928452d0f28df875263b6b621919559ec656809f4fec4a155f7c31863d6112ebf6f77c1efb3209174
7
- data.tar.gz: 06c5acb4e3d6d7fea2d1feaab25fc0600f2083a4188e80e9acf123df77e3ddff9e49d4480f1936d328c9c57eac3932aaec2a5dbda795cb261addf576d879b691
6
+ metadata.gz: eaac6f14803ef7dfa56adde984e003e4cafc60761364351663b49e5a9a816aa8a4461e6ba85b0e997209fa95cb8cdc11b73d750aca69e5d02682a2f1cac77ef3
7
+ data.tar.gz: 326f9e82a5a91ce805fa4e864b5b0837dee7095553e65792945ac31d38885c09477abc36252238d1ebe66253edd99b28b668db25954281f0d18f9b7e7b23089b
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # sysvmq
1
+ # sysvmq [![Build Status](https://travis-ci.org/Sirupsen/sysvmq.png?branch=v0.1.0)](https://travis-ci.org/Sirupsen/sysvmq)
2
2
 
3
3
  `sysvmq` is a C extension that wraps SysV IPC Message Queues. It's similar to
4
4
  the [POSIX MQ Ruby wrapper](https://github.com/Sirupsen/posix-mqueue). Message
@@ -7,13 +7,16 @@ take down either endpoint easily. The main disadvantage of SysV message queues
7
7
  over POSIX MQs (on Linux) is that SysV doesn't expose a file descriptor to do
8
8
  e.g. `select(2)` on.
9
9
 
10
+ Note that `sysvmq` doesn't rely on any third-party message broker. The message
11
+ queue is handled by the kernel. It's extremely stable and performant.
12
+
10
13
  ## Installation
11
14
 
12
15
  Add `sysvm` to your Gemfile.
13
16
 
14
17
  `gem 'sysvmq'`
15
18
 
16
- Currently known to work on Linux (MRI >= 2.0).
19
+ Currently known to work on Linux and OS X for MRI >= 2.0.
17
20
 
18
21
  ## Usage
19
22
 
data/ext/sysvmq.c CHANGED
@@ -74,7 +74,7 @@ sysvmq_alloc(VALUE klass)
74
74
  sysv->key = 0;
75
75
  sysv->id = -1;
76
76
  sysv->buffer_size = 0;
77
- sysv->msgbuf = memset(sysv, 0, sizeof(sysvmq_t));
77
+ sysv->msgbuf = NULL;
78
78
 
79
79
  return obj;
80
80
  }
@@ -216,7 +216,7 @@ sysvmq_receive(int argc, VALUE *argv, VALUE self)
216
216
  rb_sys_fail("Failed recieving message from queue");
217
217
  }
218
218
  } else {
219
- // msgrcv(2) can block sending a message, if IPC_NOWAIT is not passed.
219
+ // msgrcv(2) can block sending a message, if IPC_NOWAIT is not passed.
220
220
  // We unlock the GVL waiting for the call so other threads (e.g. signal
221
221
  // handling) can continue to work. Sets `length` on `blocking` with the size
222
222
  // of the message returned.
@@ -305,7 +305,7 @@ sysvmq_send(int argc, VALUE *argv, VALUE self)
305
305
  rb_sys_fail("Failed sending message to queue");
306
306
  }
307
307
  } else {
308
- // msgsnd(2) can block waiting for a message, if IPC_NOWAIT is not passed.
308
+ // msgsnd(2) can block waiting for a message, if IPC_NOWAIT is not passed.
309
309
  // We unlock the GVL waiting for the call so other threads (e.g. signal
310
310
  // handling) can continue to work.
311
311
  while (rb_thread_call_without_gvl(sysvmq_maybe_blocking_send, &blocking, RUBY_UBF_IO, NULL) == NULL
data/sysvmq.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "sysvmq"
7
- spec.version = '0.1.0'
7
+ spec.version = '0.1.1'
8
8
  spec.authors = ["Simon Eskildsen"]
9
9
  spec.email = ["sirup@sirupsen.com"]
10
10
  spec.summary = %q{Ruby wrapper for SysV Message Queues}
data/test/sysv_mq_test.rb CHANGED
@@ -89,7 +89,7 @@ class SysVMQTest < MiniTest::Unit::TestCase
89
89
  end
90
90
 
91
91
  def test_responds_to_sigint
92
- pid = fork {
92
+ pid = fork {
93
93
  begin
94
94
  mq = SysVMQ.new(0xDEADCAFE, 2048, SysVMQ::IPC_CREAT | 0660)
95
95
  mq.receive
@@ -117,4 +117,10 @@ class SysVMQTest < MiniTest::Unit::TestCase
117
117
  @mq.send(message, 1, SysVMQ::IPC_NOWAIT)
118
118
  assert_equal message, @mq.receive(0, SysVMQ::IPC_NOWAIT)
119
119
  end
120
+
121
+ def test_string_key_and_gc
122
+ assert_raises TypeError do
123
+ SysVMQ.new("0xDEADC0DE", @size, SysVMQ::IPC_CREAT | 0666)
124
+ end
125
+ end
120
126
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sysvmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Eskildsen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-27 00:00:00.000000000 Z
11
+ date: 2014-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler