nio4r 0.4.2 → 0.4.3
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.
- data/CHANGES.md +4 -0
- data/ext/nio4r/selector.c +13 -8
- data/lib/nio/version.rb +1 -1
- data/spec/nio/acceptables_spec.rb +2 -0
- metadata +4 -4
data/CHANGES.md
CHANGED
data/ext/nio4r/selector.c
CHANGED
@@ -37,6 +37,7 @@ static VALUE NIO_Selector_register_synchronized(VALUE *args);
|
|
37
37
|
static VALUE NIO_Selector_deregister_synchronized(VALUE *args);
|
38
38
|
static VALUE NIO_Selector_select_synchronized(VALUE *args);
|
39
39
|
static VALUE NIO_Selector_close_synchronized(VALUE self);
|
40
|
+
static VALUE NIO_Selector_closed_synchronized(VALUE self);
|
40
41
|
|
41
42
|
static int NIO_Selector_run(struct NIO_Selector *selector, VALUE timeout);
|
42
43
|
static void NIO_Selector_timeout_callback(struct ev_loop *ev_loop, struct ev_timer *timer, int revents);
|
@@ -117,11 +118,6 @@ static void NIO_Selector_mark(struct NIO_Selector *selector)
|
|
117
118
|
Called by both NIO::Selector#close and the finalizer below */
|
118
119
|
static void NIO_Selector_shutdown(struct NIO_Selector *selector)
|
119
120
|
{
|
120
|
-
if(selector->ev_loop) {
|
121
|
-
ev_loop_destroy(selector->ev_loop);
|
122
|
-
selector->ev_loop = 0;
|
123
|
-
}
|
124
|
-
|
125
121
|
if(selector->closed) {
|
126
122
|
return;
|
127
123
|
}
|
@@ -129,6 +125,10 @@ static void NIO_Selector_shutdown(struct NIO_Selector *selector)
|
|
129
125
|
close(selector->wakeup_reader);
|
130
126
|
close(selector->wakeup_writer);
|
131
127
|
|
128
|
+
if(selector->ev_loop) {
|
129
|
+
ev_loop_destroy(selector->ev_loop);
|
130
|
+
selector->ev_loop = 0;
|
131
|
+
}
|
132
132
|
selector->closed = 1;
|
133
133
|
}
|
134
134
|
|
@@ -379,6 +379,11 @@ static VALUE NIO_Selector_wakeup(VALUE self)
|
|
379
379
|
|
380
380
|
/* Close the selector and free system resources */
|
381
381
|
static VALUE NIO_Selector_close(VALUE self)
|
382
|
+
{
|
383
|
+
return NIO_Selector_synchronize(self, NIO_Selector_close_synchronized, self);
|
384
|
+
}
|
385
|
+
|
386
|
+
static VALUE NIO_Selector_close_synchronized(VALUE self)
|
382
387
|
{
|
383
388
|
struct NIO_Selector *selector;
|
384
389
|
Data_Get_Struct(self, struct NIO_Selector, selector);
|
@@ -391,10 +396,10 @@ static VALUE NIO_Selector_close(VALUE self)
|
|
391
396
|
/* Is the selector closed? */
|
392
397
|
static VALUE NIO_Selector_closed(VALUE self)
|
393
398
|
{
|
394
|
-
return NIO_Selector_synchronize(self,
|
399
|
+
return NIO_Selector_synchronize(self, NIO_Selector_closed_synchronized, self);
|
395
400
|
}
|
396
401
|
|
397
|
-
static VALUE
|
402
|
+
static VALUE NIO_Selector_closed_synchronized(VALUE self)
|
398
403
|
{ struct NIO_Selector *selector;
|
399
404
|
Data_Get_Struct(self, struct NIO_Selector, selector);
|
400
405
|
|
@@ -405,7 +410,7 @@ static VALUE NIO_Selector_close_synchronized(VALUE self)
|
|
405
410
|
static VALUE NIO_Selector_is_empty(VALUE self)
|
406
411
|
{
|
407
412
|
VALUE selectables = rb_ivar_get(self, rb_intern("selectables"));
|
408
|
-
|
413
|
+
|
409
414
|
return rb_funcall(selectables, rb_intern("empty?"), 0) == Qtrue ? Qtrue : Qfalse;
|
410
415
|
}
|
411
416
|
|
data/lib/nio/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nio4r
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
@@ -128,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
128
|
version: '0'
|
129
129
|
segments:
|
130
130
|
- 0
|
131
|
-
hash:
|
131
|
+
hash: 1104474676653820230
|
132
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
133
|
none: false
|
134
134
|
requirements:
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
137
|
version: '0'
|
138
138
|
segments:
|
139
139
|
- 0
|
140
|
-
hash:
|
140
|
+
hash: 1104474676653820230
|
141
141
|
requirements: []
|
142
142
|
rubyforge_project:
|
143
143
|
rubygems_version: 1.8.24
|