lwes 0.8.4 → 0.8.5

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/ChangeLog CHANGED
@@ -1,3 +1,6 @@
1
+ Version 0.8.5 (erik-s-chang)
2
+ * Fix Ruby 2.0.0 compatibility
3
+
1
4
  Version 0.8.4 (erik-s-chang)
2
5
  * prevent -llwes in $LIBS when building local installation
3
6
 
@@ -138,10 +138,14 @@ static VALUE listener_recv(int argc, VALUE *argv, VALUE self)
138
138
  args.event = lwes_event_create_no_name(NULL);
139
139
  args.timeout_ms = NIL_P(timeout) ? UINT_MAX : NUM2UINT(timeout);
140
140
 
141
+ retry:
141
142
  saved_errno = errno = 0;
142
143
  r = (int)rb_thread_blocking_region(recv_event, &args, RUBY_UBF_IO, 0);
143
144
  if (r >= 0)
144
145
  return lwesrb_wrap_event(cLWES_Event, args.event);
146
+
147
+ if (errno == EINTR)
148
+ goto retry;
145
149
  saved_errno = errno;
146
150
  (void)lwes_event_destroy(args.event);
147
151
  if (r == -2 && ! NIL_P(timeout))
@@ -35,7 +35,7 @@ LWES_U_INT_32 lwesrb_uint32(VALUE val)
35
35
 
36
36
  if (tmp != (LWES_U_INT_32)tmp) {
37
37
  const char *s = tmp < 0 ? "negative" : "too big";
38
- rb_raise(rb_eRangeError, ":uint32 %s: %lli", s, tmp);
38
+ rb_raise(rb_eRangeError, ":uint32 %s: %lld", s, tmp);
39
39
  }
40
40
  return (LWES_U_INT_32)tmp;
41
41
  }
@@ -46,7 +46,7 @@ LWES_INT_32 lwesrb_int32(VALUE val)
46
46
 
47
47
  if (tmp != (LWES_INT_32)tmp) {
48
48
  const char *s = tmp < 0 ? "small" : "big";
49
- rb_raise(rb_eRangeError, ":int32 too %s: %lli", s, tmp);
49
+ rb_raise(rb_eRangeError, ":int32 too %s: %lld", s, tmp);
50
50
  }
51
51
  return (LWES_INT_32)tmp;
52
52
  }
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{lwes}
3
- s.version = "0.8.4"
3
+ s.version = "0.8.5"
4
4
  s.date = Time.now
5
5
  s.authors = ["Erik S. Chang", "Frank Maritato"]
6
6
  s.email = %q{lwes-devel@lists.sourceforge.net}
@@ -35,8 +35,13 @@ class TestEmitter < Test::Unit::TestCase
35
35
  end
36
36
 
37
37
  def test_initialize_with_heartbeat
38
+ l = LWES::Listener.new(@options)
38
39
  heartbeat = @options.merge(:heartbeat => 30)
39
- assert_instance_of LWES::Emitter, LWES::Emitter.new(heartbeat)
40
+ e = LWES::Emitter.new(heartbeat)
41
+ assert_instance_of LWES::Emitter, e
42
+ assert_nil e.close
43
+ assert_instance_of LWES::Event, l.recv
44
+ assert_nil l.close
40
45
  end
41
46
 
42
47
  def test_initialize_no_ttl
@@ -60,14 +60,15 @@ class TestListener < Test::Unit::TestCase
60
60
  end
61
61
 
62
62
  def test_listen_each_signal
63
- signaled = false
64
- handler = trap(:USR1) { signaled = true }
63
+ pipe = IO.pipe
64
+ handler = trap(:USR1) { pipe[1].syswrite('.') }
65
65
  @listener = LWES::Listener.new @options
66
66
  @emitter = LWES::Emitter.new @options
67
67
  tmp = []
68
68
  thr = Thread.new do
69
69
  sleep 0.1
70
70
  Process.kill :USR1, $$
71
+ assert_equal '.', pipe[0].read(1)
71
72
  @emitter.emit("E1", :hello => "WORLD")
72
73
  :OK
73
74
  end
@@ -75,8 +76,9 @@ class TestListener < Test::Unit::TestCase
75
76
  assert thr.join
76
77
  assert_equal :OK, thr.value
77
78
  assert_equal 1, tmp.size
78
- assert_equal "WORLD", tmp[0].to_hash[:hello]
79
+ assert_equal "WORLD", tmp[0].to_hash[:hello], tmp
79
80
  ensure
80
81
  trap(:USR1, handler)
82
+ pipe.each { |io| io.close }
81
83
  end
82
84
  end if LWES::Listener.method_defined?(:recv)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lwes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.8.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-01-30 00:00:00.000000000 Z
13
+ date: 2013-02-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake-compiler
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  version: '0'
105
105
  requirements: []
106
106
  rubyforge_project: lwes
107
- rubygems_version: 1.8.23
107
+ rubygems_version: 1.8.25
108
108
  signing_key:
109
109
  specification_version: 3
110
110
  summary: Ruby bindings for the Light Weight Event System