posix_mq 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +1 -0
- data/.gitignore +1 -0
- data/.manifest +2 -1
- data/.wrongdoc.yml +7 -0
- data/ChangeLog +501 -71
- data/GIT-VERSION-FILE +1 -1
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +30 -44
- data/LATEST +6 -0
- data/NEWS +14 -7
- data/README +2 -0
- data/Rakefile +1 -103
- data/ext/posix_mq/extconf.rb +1 -1
- data/ext/posix_mq/posix_mq.c +145 -79
- data/lib/posix_mq.rb +2 -2
- data/posix_mq.gemspec +11 -22
- data/test/test_posix_mq.rb +58 -13
- metadata +38 -9
- data/local.mk.sample +0 -70
data/.document
CHANGED
data/.gitignore
CHANGED
data/.manifest
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
.document
|
2
2
|
.gitignore
|
3
3
|
.manifest
|
4
|
+
.wrongdoc.yml
|
4
5
|
COPYING
|
5
6
|
ChangeLog
|
6
7
|
Documentation/.gitignore
|
@@ -9,6 +10,7 @@ Documentation/posix-mq-rb.1.txt
|
|
9
10
|
GIT-VERSION-FILE
|
10
11
|
GIT-VERSION-GEN
|
11
12
|
GNUmakefile
|
13
|
+
LATEST
|
12
14
|
LICENSE
|
13
15
|
NEWS
|
14
16
|
README
|
@@ -17,7 +19,6 @@ bin/posix-mq-rb
|
|
17
19
|
ext/posix_mq/extconf.rb
|
18
20
|
ext/posix_mq/posix_mq.c
|
19
21
|
lib/posix_mq.rb
|
20
|
-
local.mk.sample
|
21
22
|
man/man1/posix-mq-rb.1
|
22
23
|
posix_mq.gemspec
|
23
24
|
setup.rb
|
data/.wrongdoc.yml
ADDED
data/ChangeLog
CHANGED
@@ -1,72 +1,502 @@
|
|
1
|
-
ChangeLog from
|
1
|
+
ChangeLog from http://git.bogomips.org/cgit/ruby_posix_mq.git
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
3
|
+
commit 88e85b58f3cb0796a680c86d83c16c305c33b098
|
4
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
5
|
+
Date: Sat Dec 25 00:23:03 2010 -0800
|
6
|
+
|
7
|
+
posix_mq 0.6.0 - Rubinius support
|
8
|
+
|
9
|
+
Rubinius 1.2 as well as Ruby 1.9. Ruby 1.8 works except it will
|
10
|
+
block the entire interpreter for blocking operations. Spurious
|
11
|
+
errors during GC for POSIX_MQ#to_io users are now avoided.
|
12
|
+
|
13
|
+
commit 2384ecce25e91feb1ec0a9537c76beb18a7d4f86
|
14
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
15
|
+
Date: Sat Dec 25 00:19:49 2010 -0800
|
16
|
+
|
17
|
+
switch to wrongdoc for documentation
|
18
|
+
|
19
|
+
No more JavaScript on our site!
|
20
|
+
|
21
|
+
commit 5339d9d693c794c0f20270d5726cb360e31dff30
|
22
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
23
|
+
Date: Fri Dec 24 23:56:07 2010 -0800
|
24
|
+
|
25
|
+
add Rubinius support
|
26
|
+
|
27
|
+
Cleaner code, too, no more direct RSTRUCT usage.
|
28
|
+
|
29
|
+
commit 79583aaa426ac2f0967cb84524b6e17d72499cd5
|
30
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
31
|
+
Date: Fri Dec 24 23:24:29 2010 -0800
|
32
|
+
|
33
|
+
refactor type checks and remove unnecessary guards
|
34
|
+
|
35
|
+
StringValuePtr should already be a sufficient guard.
|
36
|
+
There are more tests while we're at it, too, and we'll
|
37
|
+
now raise TypeError instead of ArgumentError when a
|
38
|
+
POSIX_MQ::Attr is not passed properly.
|
39
|
+
|
40
|
+
commit 31dee76d5ef41ec5524c3e4dfb802db4a7a468ef
|
41
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
42
|
+
Date: Fri Dec 24 18:11:04 2010 -0800
|
43
|
+
|
44
|
+
remove rb_time_interval() and gettimeofday() dependency
|
45
|
+
|
46
|
+
This function isn't exported in the standard Ruby headers,
|
47
|
+
it returns an aggregate value and isn't available in Rubinius,
|
48
|
+
either, so nuke it.
|
49
|
+
|
50
|
+
While we're at it, use clock_gettime() instead of gettimeofday()
|
51
|
+
to avoid unnecessary timeval usage since mq_send/mq_receive
|
52
|
+
rely on higher-precision timespecs instead.
|
53
|
+
|
54
|
+
commit 748d4aa2d3ece18db7d48c355ce77c877e4d3bb9
|
55
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
56
|
+
Date: Thu Aug 19 19:37:32 2010 -0700
|
57
|
+
|
58
|
+
tests: use Class#method_defined?
|
59
|
+
|
60
|
+
I did not know about this method back in the day...
|
61
|
+
|
62
|
+
commit 8f5be0c822362e113919145d52b9eeebba711236
|
63
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
64
|
+
Date: Thu Aug 19 19:36:23 2010 -0700
|
65
|
+
|
66
|
+
test: avoid leaving queues behind
|
67
|
+
|
68
|
+
We shouldn't unnecessarily hog system resources.
|
69
|
+
|
70
|
+
commit cea38abf1f76b5b795b9341406ee814303f5752b
|
71
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
72
|
+
Date: Thu Aug 19 19:25:58 2010 -0700
|
73
|
+
|
74
|
+
avoid double close() and EBADF
|
75
|
+
|
76
|
+
It can be dangerous to hit (and ignore) EBADF errors in
|
77
|
+
multi-threaded applications. Users of POSIX_MQ#to_io have two
|
78
|
+
Ruby objects pointing to the same file descriptor, making
|
79
|
+
things tricky when it comes time to reap resources.
|
80
|
+
|
81
|
+
We'll always prefer to close the Ruby IO object if it exists
|
82
|
+
(because we have less control over its GC behavior) and
|
83
|
+
ignore the raw descriptor.
|
84
|
+
|
85
|
+
commit 3cf7ec34b6319693af14215ebb0da51c3e6a4603
|
86
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
87
|
+
Date: Mon Aug 2 08:28:15 2010 +0000
|
88
|
+
|
89
|
+
open/notify: invoke GC if needed
|
90
|
+
|
91
|
+
On ENOMEM, EMFILE, and ENFILE errors, it is customary to
|
92
|
+
invoke the Ruby GC and free up resources and retry the
|
93
|
+
system call.
|
94
|
+
|
95
|
+
commit 3ca83d322486bb3da20d974af7faa74f9df891d8
|
96
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
97
|
+
Date: Sun May 9 01:05:56 2010 -0700
|
98
|
+
|
99
|
+
posix_mq 0.5.1
|
100
|
+
|
101
|
+
Fix POSIX_MQ#notify(&block) usage, this regression was
|
102
|
+
introduced in 0.4.0 and our tests for it were broken, as well.
|
103
|
+
|
104
|
+
commit a997f4822a99590c7a5175be4a694b4482a4b997
|
105
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
106
|
+
Date: Sun May 9 00:05:03 2010 -0700
|
107
|
+
|
108
|
+
fix POSIX_MQ#notify(&block) aka SIGEV_THREAD
|
109
|
+
|
110
|
+
tests for them were stupidly broken and never executed :x
|
111
|
+
|
112
|
+
commit f3605c820fd73713e34950170bf759e1af204038
|
113
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
114
|
+
Date: Tue May 4 19:48:18 2010 -0700
|
115
|
+
|
116
|
+
posix_mq 0.5.0
|
117
|
+
|
118
|
+
Uncommonly raised exceptions due to programmer error are now
|
119
|
+
raised more safely with respect to the MRI garbage collector.
|
120
|
+
|
121
|
+
The "posix-mq.rb" executable has been renamed to "posix-mq-rb"
|
122
|
+
to respect RPS and is also hopefully easier to type/read when
|
123
|
+
used in scripts. I'm preserving the "rb" in the name since I
|
124
|
+
hope to have a more portable, C-only version someday.
|
125
|
+
|
126
|
+
Minor cleanups and documentation now uses RDoc 2.5.x
|
127
|
+
|
128
|
+
commit f4d7d9d14cf65595aa3d98429a6732bd6b007b4a
|
129
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
130
|
+
Date: Tue May 4 19:37:37 2010 -0700
|
131
|
+
|
132
|
+
doc: updates for RDoc 2.5.x
|
133
|
+
|
134
|
+
commit 7b1b8a1cbbedc2764d4a8ab0d992f9f2ef73d9b7
|
135
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
136
|
+
Date: Tue May 4 19:31:47 2010 -0700
|
137
|
+
|
138
|
+
rename `posix-mq.rb' executable to `posix-mq-rb'
|
139
|
+
|
140
|
+
".rb" in the executable name is discouraged by the
|
141
|
+
{Ruby packaging standard}[http://github.com/chneukirchen/rps]
|
142
|
+
and probably confusing.
|
143
|
+
|
144
|
+
If I ever get around to it, a non-Ruby version of this
|
145
|
+
executable is planned, and that will be called "posix-mq"
|
146
|
+
|
147
|
+
commit 33368c839dc8c63489591bda6e60c78025be8852
|
148
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
149
|
+
Date: Thu Apr 22 00:02:25 2010 -0700
|
150
|
+
|
151
|
+
GC safety fixes
|
152
|
+
|
153
|
+
Avoid the RSTRING_PTR(rb_inspect(val)) construct, as it may not
|
154
|
+
preserve the value of rb_inspect() on the stack.
|
155
|
+
|
156
|
+
commit a9a365326ea0f7a37852d25adfb03049c0b24c22
|
157
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
158
|
+
Date: Wed Apr 21 23:58:25 2010 -0700
|
159
|
+
|
160
|
+
cleaner lookup "Signal" of constant
|
161
|
+
|
162
|
+
Instead of blindly defining a module, this is more flexible in
|
163
|
+
case Signal in Ruby itself becomes something other than a
|
164
|
+
module.
|
165
|
+
|
166
|
+
commit aa9beecf64739ea084158ff63a92f626bfb5717d
|
167
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
168
|
+
Date: Sat Mar 13 00:28:14 2010 -0800
|
169
|
+
|
170
|
+
posix_mq 0.4.0
|
171
|
+
|
172
|
+
Small bugfixes and small API changes to avoid potential
|
173
|
+
issues/misuse are the focus of this release.
|
174
|
+
|
175
|
+
For non-blocking operation, the GVL is no longer bounced. This
|
176
|
+
reduces synchronization/scheduling overhead when used in
|
177
|
+
non-blocking applications.
|
178
|
+
|
179
|
+
Small cleanups and documentation improvements, too.
|
180
|
+
|
181
|
+
* make POSIX_MQ#dup and POSIX_MQ#clone no-op
|
182
|
+
* do not release GVL for non-blocking operations
|
183
|
+
* do not release GVL when unlinking/opening
|
184
|
+
* POSIX_MQ#<< does not release GVL when non-blocking
|
185
|
+
* avoid shadow warnings
|
186
|
+
* README: add mailing list archives info
|
187
|
+
* POSIX_MQ#to_io works under FreeBSD, too
|
188
|
+
* fix potential race with notify(&block)
|
189
|
+
* add TODO item for using netlink under Linux
|
190
|
+
* remove non-portable #warning CPP directive
|
191
|
+
* ensure POSIX_MQ#name is clobber-proof
|
192
|
+
|
193
|
+
commit 437cbe78cb0f239e34f9dbf1341f5b85f96f2f25
|
194
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
195
|
+
Date: Sat Mar 13 00:22:22 2010 -0800
|
196
|
+
|
197
|
+
ensure POSIX_MQ#name is clobber-proof
|
198
|
+
|
199
|
+
We don't want folks to accidentally clobber the value for
|
200
|
+
others, so allocate a new string object for it (don't worry,
|
201
|
+
rb_str_dup() is cheap in 1.9).
|
202
|
+
|
203
|
+
commit 74e1f75b238416d9ac402f291431a5e457ae313f
|
204
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
205
|
+
Date: Sat Mar 13 00:08:37 2010 -0800
|
206
|
+
|
207
|
+
remove non-portable #warning CPP directive
|
208
|
+
|
209
|
+
There's a good chance they're not using GCC if they're on some
|
210
|
+
weird platform that we'd emit a warning for.
|
211
|
+
|
212
|
+
commit 9881f136858ac8f3a77a6cea8ce15b1cdb4ad55a
|
213
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
214
|
+
Date: Tue Mar 2 22:47:29 2010 -0800
|
215
|
+
|
216
|
+
add TODO item for using netlink under Linux
|
217
|
+
|
218
|
+
commit 19668b0edc9b09cfd72247f7041390e0328032a0
|
219
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
220
|
+
Date: Tue Mar 2 21:20:28 2010 -0800
|
221
|
+
|
222
|
+
fix potential race with notify(&block)
|
223
|
+
|
224
|
+
We need to assign the notify_thread before assigning the
|
225
|
+
notification. Otherwise, there's a chance the notification
|
226
|
+
could fire and the notify_thread is not properly assigned for
|
227
|
+
the POSIX_MQ object when the pipe becomes readable.
|
228
|
+
|
229
|
+
commit 0f4a8ef81479f9eff9037011d81b96cf402cbe7b
|
230
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
231
|
+
Date: Sat Feb 20 17:36:16 2010 -0800
|
232
|
+
|
233
|
+
POSIX_MQ#to_io works under FreeBSD, too
|
234
|
+
|
235
|
+
commit 44cd880c96a76d43f6dcc7f7cdf7f687e32bda0c
|
236
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
237
|
+
Date: Sat Feb 20 17:35:08 2010 -0800
|
238
|
+
|
239
|
+
README: add mailing list archives info
|
240
|
+
|
241
|
+
commit 4b56e475483454cd6616dd3c310c251940e9368b
|
242
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
243
|
+
Date: Sat Feb 20 17:19:52 2010 -0800
|
244
|
+
|
245
|
+
avoid shadow warnings
|
246
|
+
|
247
|
+
commit 97ef1cfd699640e40d2d63746d005f4f4cf6a863
|
248
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
249
|
+
Date: Sat Feb 20 14:52:16 2010 -0800
|
250
|
+
|
251
|
+
POSIX_MQ#<< does not release GVL when non-blocking
|
252
|
+
|
253
|
+
Missed this with the other change
|
254
|
+
|
255
|
+
commit 5849a3ca8e0691a7f39c5cdbfc09fc34ee4da308
|
256
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
257
|
+
Date: Sat Feb 20 14:46:04 2010 -0800
|
258
|
+
|
259
|
+
do not release GVL when unlinking/opening
|
260
|
+
|
261
|
+
Since the message queue is not actually on a (slow) block
|
262
|
+
device, it's unlikely to block in a way where other tasks may be
|
263
|
+
scheduled by the kernel. So avoid complicating things and
|
264
|
+
unnecessary task switching and assume mq_open/mq_unlink can
|
265
|
+
be executed as fast as the CPU/memory subsystems allows.
|
266
|
+
|
267
|
+
commit a90d0f97c9eb5d9683af09b60ef7af9e94a255c3
|
268
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
269
|
+
Date: Sat Feb 20 14:40:16 2010 -0800
|
270
|
+
|
271
|
+
do not release GVL for non-blocking operations
|
272
|
+
|
273
|
+
There's no point in wasting cycles releasing and reacquiring
|
274
|
+
a lock when we know we won't block. Since most non-blocking
|
275
|
+
users are expected to be single/few-threaded processes, this
|
276
|
+
will likely help them.
|
277
|
+
|
278
|
+
commit 67a59023164bc039129b34a742f06ba376687684
|
279
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
280
|
+
Date: Wed Feb 17 00:37:43 2010 -0800
|
281
|
+
|
282
|
+
make POSIX_MQ#dup and POSIX_MQ#clone no-op
|
283
|
+
|
284
|
+
It'll cause problems for the automatic mq_close() during GC
|
285
|
+
otherwise, as dup(2) on an mqd_t isn't portable.
|
286
|
+
|
287
|
+
Of course there's no point in cloning or duping, either, as
|
288
|
+
mq_send/mq_receive operations are always atomic at the kernel
|
289
|
+
level and only one thread can have a notification registered
|
290
|
+
for it.
|
291
|
+
|
292
|
+
commit 05e577616b74bea99a0e43e07f28823ddda1aaf9
|
293
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
294
|
+
Date: Sat Feb 13 03:39:17 2010 -0800
|
295
|
+
|
296
|
+
posix_mq 0.3.1
|
297
|
+
|
298
|
+
This fixes a misuse of the Ruby API leading to memory leaks in
|
299
|
+
cases where message queues are continually opened and closed
|
300
|
+
throughout the lifetime of the application.
|
301
|
+
|
302
|
+
Fortunately applications have little reason to repeatedly open
|
303
|
+
and close message queue descriptors: they are
|
304
|
+
multi-thread/multi-process-safe in every way imaginable and also
|
305
|
+
capable of non-blocking operation.
|
306
|
+
|
307
|
+
commit 9adbee0ab71bf408db5c3befb43b2bab0d86ebb2
|
308
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
309
|
+
Date: Sat Feb 13 03:30:44 2010 -0800
|
310
|
+
|
311
|
+
use GC correctly and avoid memory leaks
|
312
|
+
|
313
|
+
We still need to explicitly free the pointer we're given, and
|
314
|
+
not just close the associated file descriptor. Fortunately most
|
315
|
+
people to not spend all day opening/closing message queue
|
316
|
+
descriptors so this leak may not be noticeable.
|
317
|
+
|
318
|
+
commit c07cf2979036b9550566d59d6d4899be98f3e553
|
319
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
320
|
+
Date: Thu Jan 21 20:44:22 2010 -0800
|
321
|
+
|
322
|
+
add #shift test with destination buffer
|
323
|
+
|
324
|
+
commit 1d0bf6f1d39e085948008c2c6d381ed929ac109e
|
325
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
326
|
+
Date: Sat Jan 9 15:16:40 2010 -0800
|
327
|
+
|
328
|
+
Rakefile: fix raa_update task
|
329
|
+
|
330
|
+
commit 2e420820d3b3fb228c810937539f95a618a2c271
|
331
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
332
|
+
Date: Sat Jan 9 22:52:27 2010 +0000
|
333
|
+
|
334
|
+
posix_mq 0.3.0
|
335
|
+
|
336
|
+
This release adds a few new API methods, fixes MRI 1.8.6
|
337
|
+
support. We should now have full feature parity with
|
338
|
+
underlying POSIX message queue C API.
|
339
|
+
|
340
|
+
* POSIX_MQ#notify(&block)
|
341
|
+
RDoc: http://bogomips.org/ruby_posix_mq/POSIX_MQ.html#M000001
|
342
|
+
This is only supported on platforms that implement
|
343
|
+
SIGEV_THREAD with mq_notify(3) (tested with glibc + Linux).
|
344
|
+
Other platforms will have to continue to rely on signal
|
345
|
+
notifications via POSIX#notify=signal, or IO notifications
|
346
|
+
in FreeBSD (and Linux).
|
347
|
+
|
348
|
+
* POSIX_MQ#shift([buffer [,timeout]])
|
349
|
+
Shorthand for the common "POSIX_MQ#receive.first"
|
350
|
+
when you do not care for priority of the received message.
|
351
|
+
|
352
|
+
Rev, EventMachine and Reactor support are planned for
|
353
|
+
Linux, FreeBSD and possibly any other platforms where POSIX
|
354
|
+
message queues are implemented with a file descriptor.
|
355
|
+
|
356
|
+
commit 2c71257b2b95e737088726ffc963b4e72f1b5455
|
357
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
358
|
+
Date: Sat Jan 9 22:49:49 2010 +0000
|
359
|
+
|
360
|
+
MRI 1.8 does not have rb_str_flush
|
361
|
+
|
362
|
+
It's Rubinius-specific and we use rb_str_resize
|
363
|
+
there anyways...
|
364
|
+
|
365
|
+
commit 531106e51e519458d37bed3721da4eff2f163206
|
366
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
367
|
+
Date: Fri Jan 8 11:30:49 2010 -0800
|
368
|
+
|
369
|
+
no point in non-blocking for fd notifications
|
370
|
+
|
371
|
+
It's not needed since the native thread will retry in the
|
372
|
+
unlikely case of EINTR/EAGAIN. And writing one byte to a pipe
|
373
|
+
that's guaranteed by POSIX to be at least 512 bytes is highly
|
374
|
+
unlikely.
|
375
|
+
|
376
|
+
It's also bad because F_SETFL takes the big kernel lock under
|
377
|
+
Linux (and possibly other systems), and doing it unnecessarily
|
378
|
+
is a waste of system cycles.
|
379
|
+
|
380
|
+
commit d03c76ae11ca6294e05262df747e4d43822ada73
|
381
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
382
|
+
Date: Fri Jan 8 11:25:06 2010 -0800
|
383
|
+
|
384
|
+
mode_t is usually unsigned
|
385
|
+
|
386
|
+
Most used open modes are well under INT_MAX, however
|
387
|
+
|
388
|
+
commit b3c31cf444e2ca3dae0f6d2370944bfbf3382d88
|
389
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
390
|
+
Date: Thu Jan 7 01:45:25 2010 -0800
|
391
|
+
|
392
|
+
add POSIX_MQ#shift helper method
|
393
|
+
|
394
|
+
This acts like POSIX_MQ#receive but only returns the message
|
395
|
+
without the priority.
|
396
|
+
|
397
|
+
commit 3700db51399e4949ed314ad0545d037b7762064e
|
398
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
399
|
+
Date: Thu Jan 7 09:28:57 2010 +0000
|
400
|
+
|
401
|
+
POSIX_MQ#notify only works on GNU/Linux for now
|
402
|
+
|
403
|
+
SIGEV_THREAD is not easy to implement, so many platforms
|
404
|
+
do not implement it.
|
405
|
+
|
406
|
+
commit 40d61f55ac53e3cd2f229d0b032da03032e3d53d
|
407
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
408
|
+
Date: Thu Jan 7 00:37:57 2010 -0800
|
409
|
+
|
410
|
+
POSIX_MQ#notify block execution on message received
|
411
|
+
|
412
|
+
This is implementation uses both a short-lived POSIX thread and
|
413
|
+
a pre-spawned Ruby Thread in a manner that works properly under
|
414
|
+
both Ruby 1.8 (green threads) and 1.9 (where Ruby Threads are
|
415
|
+
POSIX threads).
|
416
|
+
|
417
|
+
The short-lived POSIX thread will write a single "\0" byte to
|
418
|
+
a pipe the Ruby Thread waits on. This operation is atomic
|
419
|
+
on all platforms. Once the Ruby Thread is woken up from the
|
420
|
+
pipe, it will execute th block given to it.
|
421
|
+
|
422
|
+
This dual-thread implementation is inspired by the way glibc
|
423
|
+
implements mq_notify(3) + SIGEV_THREAD under Linux where the
|
424
|
+
kernel itself cannot directly spawn POSIX threads.
|
425
|
+
|
426
|
+
commit d8c8fb4155c1feea454abc3ed3f0a4b26e90be68
|
427
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
428
|
+
Date: Sun Jan 3 05:26:00 2010 +0000
|
429
|
+
|
430
|
+
fix warnings on platforms where mqd_t != int
|
431
|
+
|
432
|
+
The POSIX manpages specify the return values of all
|
433
|
+
mq_* functions besides mq_open(3) to be "int", not "mqd_t".
|
434
|
+
|
435
|
+
commit dbe5ed46e07b853e79e44141924a0166016e3e44
|
436
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
437
|
+
Date: Sat Jan 2 23:19:34 2010 -0800
|
438
|
+
|
439
|
+
bump GIT-VERSION-GEN
|
440
|
+
|
441
|
+
Shouldn't affect most people since they should just
|
442
|
+
take code from git...
|
443
|
+
|
444
|
+
commit fd2fcdeee6b44f7854255cb7e01c81db3cd2d99c
|
445
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
446
|
+
Date: Sun Jan 3 05:46:45 2010 +0000
|
447
|
+
|
448
|
+
posix_mq 0.2.0
|
449
|
+
|
450
|
+
This release fixes notification (un)registration and should be
|
451
|
+
fully-supported on modern FreeBSD (7.2+) releases.
|
452
|
+
|
453
|
+
POSIX_MQ#notify=nil correctly unregister notification requests.
|
454
|
+
POSIX_MQ#notify=false now provids the no-op SIGEV_NONE
|
455
|
+
functionality. Under FreeBSD, using IO.select on POSIX_MQ
|
456
|
+
objects is now possible as it has always been under Linux.
|
457
|
+
|
458
|
+
commit 350bfc831938d84cc2d478f2cf88583863cb64fb
|
459
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
460
|
+
Date: Sun Jan 3 05:35:50 2010 +0000
|
461
|
+
|
462
|
+
support POSIX_MQ#to_io under FreeBSD
|
463
|
+
|
464
|
+
FreeBSD implements an __mq_oshandle(mqd_t mqd) function
|
465
|
+
to convert mqd_t to integer file descriptors.
|
466
|
+
|
467
|
+
commit 26015d39e9c848a536b4ea44802f858a4e6e74f7
|
468
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
469
|
+
Date: Sun Jan 3 04:17:56 2010 +0000
|
470
|
+
|
471
|
+
fix build under FreeBSD 7.2
|
472
|
+
|
473
|
+
FreeBSD seems to need some files explicitly included.
|
474
|
+
|
475
|
+
commit e7ac70686b3c09953f6c41966dbd77f77368a9ec
|
476
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
477
|
+
Date: Sat Jan 2 21:19:58 2010 -0800
|
478
|
+
|
479
|
+
doc: FreeBSD-specific notes + example code
|
480
|
+
|
481
|
+
commit 6f24b5626f89fbb6445c0943ba71f56c8945e18f
|
482
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
483
|
+
Date: Sat Jan 2 20:41:39 2010 -0800
|
484
|
+
|
485
|
+
Fix mq.notify = nil to unregister notifications
|
486
|
+
|
487
|
+
"mq.notify = false" also works now, doing what
|
488
|
+
"mq.notify = nil" used to do (using SIGEV_NONE).
|
489
|
+
|
490
|
+
I was confused by SIGEV_NONE usage vs using a NULL pointer for
|
491
|
+
the notification passed mq_notify(3). SIGEV_NONE does not
|
492
|
+
actually unregister, it registers a no-op notification which
|
493
|
+
prevents other processes from taking us.
|
494
|
+
|
495
|
+
This also fixes the test case to pass under both Linux and
|
496
|
+
FreeBSD.
|
497
|
+
|
498
|
+
commit 522d4d1472c216bd95a16ca5b118bc14693aad64
|
499
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
500
|
+
Date: Sat Jan 2 02:33:23 2010 -0800
|
501
|
+
|
502
|
+
initial commit
|
data/GIT-VERSION-FILE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
GIT_VERSION = 0.
|
1
|
+
GIT_VERSION = 0.6.0
|