ruby-dbus 0.14.0 → 0.14.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: 95dfa24c76e4ed5aeb5997bd160a4efd69a8c146
4
- data.tar.gz: 244e215c35cff67f53c7f7ac51a699c2fec22b2d
3
+ metadata.gz: 1ca1c79fb320bdde63e80e01a065481bbb705b75
4
+ data.tar.gz: 3a85e1c88c87d352fc2e838f64df72ccf90e4ddf
5
5
  SHA512:
6
- metadata.gz: f020e993e5a6777c7ea540cf1197200aa6f1c3c7003f331b42b73cea3d5937925243bf46d2668488e8854bb7ac34d88a20934a18e90a2bb46d9fca7bcb8de764
7
- data.tar.gz: 160ebb98a13e02b982c7b634a02aa271b5899d54be289c9f5d71c0a2f8b9fcfc1190e4e19854a1a236a237f875cd108bad280a6bdbe571e68cb38afaad10b6b4
6
+ metadata.gz: cced70bcf377786b5e5b28d29fbccdc0513e9535af05dcc2b0580b5eb860fbe0f1822c46aedc910c4c8479ba0f21e5b3927df48d283fd121fc980a49bd015d9b
7
+ data.tar.gz: e38930b71af6c62a9dad723001ccdd8bb059d1130b7089b210c1e35334faa3e6d413823abdf70ccaf2af6d49a9116b0afa4fc68135ff7f1936504f7b77d729cf
data/NEWS.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## Ruby D-Bus 0.14.1 - 2018-01-05
6
+
7
+ Bug fixes:
8
+ * Allow registering signal handlers while a signal is being handled
9
+ ([#70][], Jan Biniok).
10
+
11
+ [#70]: https://github.com/mvidner/ruby-dbus/pull/70
12
+
5
13
  ## Ruby D-Bus 0.14.0 - 2017-10-13
6
14
 
7
15
  Bug fixes:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.14.0
1
+ 0.14.1
@@ -538,7 +538,8 @@ module DBus
538
538
  end
539
539
  when DBus::Message::SIGNAL
540
540
  # the signal can match multiple different rules
541
- @signal_matchrules.each do |mrs, slot|
541
+ # clone to allow new signale handlers to be registered
542
+ @signal_matchrules.dup.each do |mrs, slot|
542
543
  if DBus::MatchRule.new.from_s(mrs).match(m)
543
544
  slot.call(m)
544
545
  end
@@ -1,6 +1,5 @@
1
1
  # -*- ruby -*-
2
2
  require "rubygems"
3
- require "rake"
4
3
 
5
4
  GEMSPEC = Gem::Specification.new do |s|
6
5
  s.name = "ruby-dbus"
@@ -12,10 +11,11 @@ GEMSPEC = Gem::Specification.new do |s|
12
11
  s.author = "Ruby DBus Team"
13
12
  s.email = "ruby-dbus-devel@lists.luon.net"
14
13
  s.homepage = "https://trac.luon.net/ruby-dbus"
15
- s.files = FileList[
14
+ s.files = Dir[
16
15
  "{doc,examples,lib,spec}/**/*",
17
16
  "COPYING", "NEWS.md", "Rakefile", "README.md",
18
- "ruby-dbus.gemspec", "VERSION", ".rspec"].to_a.sort
17
+ "ruby-dbus.gemspec", "VERSION", ".rspec"
18
+ ]
19
19
  s.require_path = "lib"
20
20
 
21
21
  s.required_ruby_version = ">= 2.0.0"
@@ -3,6 +3,19 @@
3
3
  require_relative "spec_helper"
4
4
  require "dbus"
5
5
 
6
+ def new_quitter(main_loop)
7
+ Thread.new do
8
+ DBus.logger.debug "sleep before quit"
9
+ # FIXME: if we sleep for too long
10
+ # the socket will be drained and we deadlock in a select.
11
+ # It could be worked around by sending ourselves a Unix signal
12
+ # (with a dummy handler) to interrupt the select
13
+ sleep 1
14
+ DBus.logger.debug "will quit"
15
+ main_loop.quit
16
+ end
17
+ end
18
+
6
19
  describe "SignalHandlerTest" do
7
20
  before(:each) do
8
21
  @session_bus = DBus::ASessionBus.new
@@ -32,16 +45,7 @@ describe "SignalHandlerTest" do
32
45
  DBus.logger.debug "will begin"
33
46
  @obj.LongTaskBegin 3
34
47
 
35
- quitter = Thread.new do
36
- DBus.logger.debug "sleep before quit"
37
- # FIXME: if we sleep for too long
38
- # the socket will be drained and we deadlock in a select.
39
- # It could be worked around by sending ourselves a Unix signal
40
- # (with a dummy handler) to interrupt the select
41
- sleep 1
42
- DBus.logger.debug "will quit"
43
- @loop.quit
44
- end
48
+ quitter = new_quitter(@loop)
45
49
  @loop.run
46
50
  quitter.join
47
51
 
@@ -60,12 +64,7 @@ describe "SignalHandlerTest" do
60
64
  counter += 1
61
65
  end
62
66
  @obj.LongTaskBegin 3
63
- quitter = Thread.new do
64
- DBus.logger.debug "sleep before quit"
65
- sleep 1
66
- DBus.logger.debug "will quit"
67
- @loop.quit
68
- end
67
+ quitter = new_quitter(@loop)
69
68
  @loop.run
70
69
  quitter.join
71
70
 
@@ -75,6 +74,22 @@ describe "SignalHandlerTest" do
75
74
  expect { @intf.on_signal "to", "many", "yarrrrr!" }.to raise_error(ArgumentError)
76
75
  end
77
76
 
77
+ it "is possible to add signal handlers from within handlers" do
78
+ ended = false
79
+ @intf.on_signal "LongTaskStart" do
80
+ @intf.on_signal "LongTaskEnd" do
81
+ ended = true
82
+ end
83
+ end
84
+
85
+ @obj.LongTaskBegin 3
86
+ quitter = new_quitter(@loop)
87
+ @loop.run
88
+ quitter.join
89
+
90
+ expect(ended).to eq(true)
91
+ end
92
+
78
93
  it "tests too many rules" do
79
94
  100.times do
80
95
  @obj.on_signal "Whichever" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-dbus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruby DBus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-13 00:00:00.000000000 Z
11
+ date: 2018-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coveralls