posix_mq 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.olddoc.yml +3 -4
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +2 -2
- data/README +5 -5
- data/ext/posix_mq/posix_mq.c +17 -4
- data/posix_mq.gemspec +12 -10
- data/test/test_posix_mq.rb +20 -5
- metadata +6 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28c3337592f1850091340d1e8e25434d54f70c01
|
4
|
+
data.tar.gz: d639e8b75f7e786d802347440d1260f8104f29a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9911162a18e4211faf0f1ff1e70e0867b8c7fff3c89a918a1ccacdc1492ddb002a74260fbaa8deefa63c7c6aa59974c9e5da49ac7c1922c010d89b443ee51520
|
7
|
+
data.tar.gz: 71d299abc47d5f2b1f03fb11e94b7dd2cfcd1a06af0d1eead9b716b8786df6ab0900cffc0f2f590cb2697cf20f71a1ac152da0754d0407f8e6af8199e9709ff2
|
data/.olddoc.yml
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
---
|
2
|
-
rdoc_url:
|
3
|
-
cgit_url:
|
2
|
+
rdoc_url: https://bogomips.org/ruby_posix_mq/
|
3
|
+
cgit_url: https://bogomips.org/ruby_posix_mq.git
|
4
4
|
git_url: git://bogomips.org/ruby_posix_mq.git
|
5
5
|
public_email: ruby-posix-mq@bogomips.org
|
6
|
-
|
7
|
-
ml_url: http://bogomips.org/ruby-posix-mq/
|
6
|
+
ml_url: https://bogomips.org/ruby-posix-mq/
|
8
7
|
changelog_since: 0.4.0
|
9
8
|
merge_html:
|
10
9
|
posix-mq-rb_1: Documentation/posix-mq-rb.1.html
|
data/GIT-VERSION-GEN
CHANGED
data/GNUmakefile
CHANGED
data/README
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= posix_mq - POSIX
|
1
|
+
= posix_mq - POSIX message queues for Ruby
|
2
2
|
|
3
3
|
POSIX message queues allow local processes to exchange data in the form
|
4
4
|
of messages. This API is distinct from that provided by System V
|
@@ -47,7 +47,7 @@ compiler and the matching Ruby development libraries and headers.
|
|
47
47
|
If you plan on using the command-line client, a tarball installation
|
48
48
|
starts up faster and is recommended. Just grab the tarball from:
|
49
49
|
|
50
|
-
|
50
|
+
https://bogomips.org/ruby_posix_mq/files/
|
51
51
|
Unpack it, and run "ruby setup.rb"
|
52
52
|
|
53
53
|
Otherwise, via RubyGems: gem install posix_mq
|
@@ -97,7 +97,7 @@ You can get the latest source via git from the following locations:
|
|
97
97
|
|
98
98
|
You may also browse the code from the web:
|
99
99
|
|
100
|
-
*
|
100
|
+
* https://bogomips.org/ruby_posix_mq.git
|
101
101
|
* http://repo.or.cz/w/ruby_posix_mq.git (gitweb)
|
102
102
|
|
103
103
|
Inline patches (from "git format-patch") to the mailing list are
|
@@ -123,7 +123,7 @@ will usually get a response within 24-72 hours.
|
|
123
123
|
|
124
124
|
Subscription is optional: mailto:ruby-posix-mq+subscribe@bogomips.org
|
125
125
|
|
126
|
-
Read-only mail archives are available over
|
126
|
+
Read-only mail archives are available over HTTPS and NNTP:
|
127
127
|
|
128
|
-
|
128
|
+
https://bogomips.org/ruby-posix-mq/
|
129
129
|
nntp://news.public-inbox.org/inbox.comp.lang.ruby.posix-mq
|
data/ext/posix_mq/posix_mq.c
CHANGED
@@ -317,11 +317,22 @@ static void _free(void *ptr)
|
|
317
317
|
xfree(ptr);
|
318
318
|
}
|
319
319
|
|
320
|
+
static size_t memsize(const void *ptr)
|
321
|
+
{
|
322
|
+
return sizeof(struct posix_mq);
|
323
|
+
}
|
324
|
+
|
325
|
+
static const rb_data_type_t mqtype = {
|
326
|
+
"posix_mq",
|
327
|
+
{ mark, _free, memsize, /* reserved */ },
|
328
|
+
/* parent, data, [ flags ] */
|
329
|
+
};
|
330
|
+
|
320
331
|
/* automatically called at creation (before initialize) */
|
321
332
|
static VALUE alloc(VALUE klass)
|
322
333
|
{
|
323
334
|
struct posix_mq *mq;
|
324
|
-
VALUE rv =
|
335
|
+
VALUE rv = TypedData_Make_Struct(klass, struct posix_mq, &mqtype, mq);
|
325
336
|
|
326
337
|
mq->des = MQD_INVALID;
|
327
338
|
mq->autoclose = 1;
|
@@ -341,7 +352,7 @@ static struct posix_mq *get(VALUE self, int need_valid)
|
|
341
352
|
{
|
342
353
|
struct posix_mq *mq;
|
343
354
|
|
344
|
-
|
355
|
+
TypedData_Get_Struct(self, struct posix_mq, &mqtype, mq);
|
345
356
|
|
346
357
|
if (need_valid && mq->des == MQD_INVALID)
|
347
358
|
rb_raise(rb_eIOError, "closed queue descriptor");
|
@@ -512,7 +523,7 @@ static VALUE init(int argc, VALUE *argv, VALUE self)
|
|
512
523
|
rb_sys_fail("mq_open");
|
513
524
|
}
|
514
525
|
|
515
|
-
mq->name =
|
526
|
+
mq->name = rb_str_new_frozen(name);
|
516
527
|
if (x.oflags & O_NONBLOCK)
|
517
528
|
mq->attr.mq_flags = O_NONBLOCK;
|
518
529
|
|
@@ -876,6 +887,7 @@ static VALUE name(VALUE self)
|
|
876
887
|
rb_raise(rb_eArgError, "can not get name of an adopted socket");
|
877
888
|
}
|
878
889
|
|
890
|
+
/* XXX compatibility: in retrospect, we could return a frozen string */
|
879
891
|
return rb_str_dup(mq->name);
|
880
892
|
}
|
881
893
|
|
@@ -896,6 +908,7 @@ static int lookup_sig(VALUE sig)
|
|
896
908
|
VALUE mSignal = rb_const_get(rb_cObject, rb_intern("Signal"));
|
897
909
|
|
898
910
|
list = rb_funcall(mSignal, rb_intern("list"), 0, 0);
|
911
|
+
rb_obj_freeze(list);
|
899
912
|
rb_global_variable(&list);
|
900
913
|
}
|
901
914
|
|
@@ -1213,11 +1226,11 @@ void Init_posix_mq_ext(void)
|
|
1213
1226
|
rb_define_method(cPOSIX_MQ, "autoclose=", setautoclose, 1);
|
1214
1227
|
#ifdef MQD_TO_FD
|
1215
1228
|
rb_define_method(cPOSIX_MQ, "to_io", to_io, 0);
|
1229
|
+
id_setautoclose = rb_intern("autoclose=");
|
1216
1230
|
#endif
|
1217
1231
|
|
1218
1232
|
#ifdef FD_TO_MQD
|
1219
1233
|
rb_define_module_function(cPOSIX_MQ, "for_fd", for_fd, 1);
|
1220
|
-
id_setautoclose = rb_intern("autoclose=");
|
1221
1234
|
#endif
|
1222
1235
|
|
1223
1236
|
id_new = rb_intern("new");
|
data/posix_mq.gemspec
CHANGED
@@ -1,23 +1,25 @@
|
|
1
1
|
# -*- encoding: binary -*-
|
2
|
-
ENV["VERSION"]
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
ENV["VERSION"] ||= '2.4.0'
|
3
|
+
if File.exist?('.manifest')
|
4
|
+
manifest = IO.readlines('.manifest').map!(&:chomp!)
|
5
|
+
else
|
6
|
+
manifest = `git ls-files`.split("\n")
|
7
|
+
end
|
7
8
|
|
8
9
|
Gem::Specification.new do |s|
|
9
10
|
s.name = %q{posix_mq}
|
10
11
|
s.version = ENV["VERSION"].dup
|
11
12
|
s.authors = ["Ruby POSIX MQ hackers"]
|
12
|
-
s.description =
|
13
|
+
s.description = File.read('README').split("\n\n")[1]
|
13
14
|
s.email = %q{ruby-posix-mq@bogomips.org}
|
14
15
|
s.executables = %w(posix-mq-rb)
|
15
16
|
s.extensions = %w(ext/posix_mq/extconf.rb)
|
16
|
-
s.extra_rdoc_files =
|
17
|
+
s.extra_rdoc_files = IO.readlines('.document').map!(&:chomp!).keep_if do |f|
|
18
|
+
File.exist?(f)
|
19
|
+
end
|
17
20
|
s.files = manifest
|
18
|
-
s.homepage =
|
19
|
-
s.summary =
|
21
|
+
s.homepage = 'https://bogomips.org/ruby_posix_mq/'
|
22
|
+
s.summary = 'POSIX message queues for Ruby'
|
20
23
|
s.test_files = manifest.grep(%r{\Atest/test_.*\.rb\z})
|
21
|
-
s.add_development_dependency(%q<olddoc>, "~> 1.0")
|
22
24
|
s.licenses = %w(GPL-2.0 LGPL-3.0+)
|
23
25
|
end
|
data/test/test_posix_mq.rb
CHANGED
@@ -303,9 +303,10 @@ class Test_POSIX_MQ < Test::Unit::TestCase
|
|
303
303
|
begin
|
304
304
|
@mq.notify = :USR1
|
305
305
|
rescue Errno::EBUSY
|
306
|
-
exit
|
306
|
+
exit!(0)
|
307
307
|
rescue => e
|
308
|
-
|
308
|
+
exit!(0) if Errno::EBADF === e && RUBY_PLATFORM =~ /freebsd/
|
309
|
+
warn "#{e.message} (#{e.class})\n"
|
309
310
|
end
|
310
311
|
exit! 1
|
311
312
|
end
|
@@ -326,14 +327,28 @@ class Test_POSIX_MQ < Test::Unit::TestCase
|
|
326
327
|
end
|
327
328
|
|
328
329
|
def test_setattr_fork
|
330
|
+
return if RUBY_PLATFORM !~ /freebsd/
|
329
331
|
@mq = POSIX_MQ.new @path, IO::CREAT|IO::WRONLY, 0666
|
330
332
|
mq_attr = POSIX_MQ::Attr.new(IO::NONBLOCK)
|
331
333
|
@mq.attr = mq_attr
|
332
334
|
assert @mq.nonblock?
|
333
335
|
|
334
|
-
pid = fork
|
335
|
-
|
336
|
-
|
336
|
+
pid = fork do
|
337
|
+
begin
|
338
|
+
@mq.nonblock = false
|
339
|
+
rescue => e
|
340
|
+
exit!(2) if Errno::EBADF === e && RUBY_PLATFORM =~ /freebsd/
|
341
|
+
warn "#{e.message} (#{e.class})\n"
|
342
|
+
exit!(1)
|
343
|
+
end
|
344
|
+
exit!(0)
|
345
|
+
end
|
346
|
+
_, status = Process.waitpid2(pid)
|
347
|
+
if status.success?
|
348
|
+
assert ! @mq.nonblock?
|
349
|
+
else
|
350
|
+
assert_equal 2, status.exitstatus
|
351
|
+
end
|
337
352
|
end
|
338
353
|
|
339
354
|
def test_new_nonblocking
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: posix_mq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruby POSIX MQ hackers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: olddoc
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.0'
|
11
|
+
date: 2017-03-20 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
27
13
|
description: |-
|
28
14
|
POSIX message queues allow local processes to exchange data in the form
|
29
15
|
of messages. This API is distinct from that provided by System V
|
@@ -37,7 +23,6 @@ extra_rdoc_files:
|
|
37
23
|
- README
|
38
24
|
- LICENSE
|
39
25
|
- NEWS
|
40
|
-
- lib/posix_mq.rb
|
41
26
|
- ext/posix_mq/posix_mq.c
|
42
27
|
- posix-mq-rb_1
|
43
28
|
files:
|
@@ -69,7 +54,7 @@ files:
|
|
69
54
|
- posix_mq.gemspec
|
70
55
|
- setup.rb
|
71
56
|
- test/test_posix_mq.rb
|
72
|
-
homepage:
|
57
|
+
homepage: https://bogomips.org/ruby_posix_mq/
|
73
58
|
licenses:
|
74
59
|
- GPL-2.0
|
75
60
|
- LGPL-3.0+
|
@@ -90,9 +75,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
75
|
version: '0'
|
91
76
|
requirements: []
|
92
77
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.
|
78
|
+
rubygems_version: 2.6.10
|
94
79
|
signing_key:
|
95
80
|
specification_version: 4
|
96
|
-
summary: POSIX
|
81
|
+
summary: POSIX message queues for Ruby
|
97
82
|
test_files:
|
98
83
|
- test/test_posix_mq.rb
|