pigeon 0.7.0 → 0.7.1

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.7.1
data/lib/pigeon/engine.rb CHANGED
@@ -235,7 +235,7 @@ class Pigeon::Engine
235
235
  # Schedules a block for execution on the main EventMachine thread. This is
236
236
  # a wrapper around the EventMachine.schedule method.
237
237
  def self.execute_in_main_thread(&block)
238
- EventMachine.schedule(&block)
238
+ EventMachine.next_tick(&block)
239
239
  end
240
240
 
241
241
  # == Instance Methods =====================================================
@@ -356,7 +356,7 @@ class Pigeon::Engine
356
356
 
357
357
  target_queue.perform(&block)
358
358
  else
359
- EventMachine.schedule(&block)
359
+ EventMachine.next_tick(&block)
360
360
  end
361
361
  end
362
362
 
@@ -19,7 +19,6 @@ class Pigeon::Processor
19
19
  # can be given to filter the tasks contained in the associated queue.
20
20
  def initialize(queue = nil, context = nil, &filter)
21
21
  @id = Pigeon::Support.unique_id
22
- @lock = Mutex.new
23
22
  @filter = filter
24
23
  @context = context
25
24
 
@@ -39,18 +38,14 @@ class Pigeon::Processor
39
38
 
40
39
  if (@queue = queue)
41
40
  @claim = lambda do |task|
42
- if (@lock.try_lock)
43
- if (!@task and (!@filter or @filter.call(task)))
44
- @task = queue.claim(task)
41
+ if (!@task and (!@filter or @filter.call(task)))
42
+ @task = queue.claim(task)
45
43
 
46
- before_task(@task)
47
-
48
- @task.run!(self) do
49
- switch_to_next_task!
50
- end
44
+ before_task(@task)
45
+
46
+ @task.run!(self) do
47
+ switch_to_next_task!
51
48
  end
52
-
53
- @lock.unlock
54
49
  end
55
50
  end
56
51
 
@@ -87,21 +82,20 @@ protected
87
82
  # Used to reliably switch to the next task and coordinates the required
88
83
  # hand-off from one to the next.
89
84
  def switch_to_next_task!
90
- @lock.synchronize do
91
- if (@task)
92
- after_task(@task)
93
- @task.processor = nil
94
- end
95
-
85
+ if (@task)
86
+ after_task(@task)
87
+
88
+ @task.processor = nil
89
+
96
90
  @task = nil
97
-
98
- if (@queue)
99
- if (@task = @queue.pop(&@filter))
100
- before_task(@task)
101
-
102
- @task.run!(self) do
103
- switch_to_next_task!
104
- end
91
+ end
92
+
93
+ if (@queue)
94
+ if (@task = @queue.pop(&@filter))
95
+ before_task(@task)
96
+
97
+ @task.run!(self) do
98
+ switch_to_next_task!
105
99
  end
106
100
  end
107
101
  end
data/pigeon.gemspec CHANGED
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{pigeon}
8
- s.version = "0.7.0"
7
+ s.name = "pigeon"
8
+ s.version = "0.7.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{tadman}]
12
- s.date = %q{2011-06-21}
13
- s.description = %q{Pigeon is a simple way to get started building an EventMachine engine that's intended to run as a background job.}
14
- s.email = %q{github@tadman.ca}
11
+ s.authors = ["tadman"]
12
+ s.date = "2011-10-12"
13
+ s.description = "Pigeon is a simple way to get started building an EventMachine engine that's intended to run as a background job."
14
+ s.email = "github@tadman.ca"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
17
  "README.rdoc"
@@ -50,24 +50,10 @@ Gem::Specification.new do |s|
50
50
  "test/unit/pigeon_task_test.rb",
51
51
  "test/unit/pigeon_test.rb"
52
52
  ]
53
- s.homepage = %q{http://github.com/twg/pigeon}
54
- s.require_paths = [%q{lib}]
55
- s.rubygems_version = %q{1.8.5}
56
- s.summary = %q{Simple daemonized EventMachine engine framework with plug-in support}
57
- s.test_files = [
58
- "test/helper.rb",
59
- "test/unit/pigeon_backlog_test.rb",
60
- "test/unit/pigeon_dispatcher_test.rb",
61
- "test/unit/pigeon_engine_test.rb",
62
- "test/unit/pigeon_launcher_test.rb",
63
- "test/unit/pigeon_option_accessor_test.rb",
64
- "test/unit/pigeon_processor_test.rb",
65
- "test/unit/pigeon_queue_test.rb",
66
- "test/unit/pigeon_scheduler_test.rb",
67
- "test/unit/pigeon_sorted_array_test.rb",
68
- "test/unit/pigeon_task_test.rb",
69
- "test/unit/pigeon_test.rb"
70
- ]
53
+ s.homepage = "http://github.com/twg/pigeon"
54
+ s.require_paths = ["lib"]
55
+ s.rubygems_version = "1.8.10"
56
+ s.summary = "Simple daemonized EventMachine engine framework with plug-in support"
71
57
 
72
58
  if s.respond_to? :specification_version then
73
59
  s.specification_version = 3
metadata CHANGED
@@ -1,38 +1,36 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: pigeon
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.1
4
5
  prerelease:
5
- version: 0.7.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - tadman
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-21 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-10-12 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: eventmachine
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2154594780 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :development
25
- version_requirements: *id001
26
- description: Pigeon is a simple way to get started building an EventMachine engine that's intended to run as a background job.
23
+ prerelease: false
24
+ version_requirements: *2154594780
25
+ description: Pigeon is a simple way to get started building an EventMachine engine
26
+ that's intended to run as a background job.
27
27
  email: github@tadman.ca
28
28
  executables: []
29
-
30
29
  extensions: []
31
-
32
- extra_rdoc_files:
30
+ extra_rdoc_files:
33
31
  - LICENSE
34
32
  - README.rdoc
35
- files:
33
+ files:
36
34
  - .document
37
35
  - LICENSE
38
36
  - README.rdoc
@@ -67,41 +65,26 @@ files:
67
65
  - test/unit/pigeon_test.rb
68
66
  homepage: http://github.com/twg/pigeon
69
67
  licenses: []
70
-
71
68
  post_install_message:
72
69
  rdoc_options: []
73
-
74
- require_paths:
70
+ require_paths:
75
71
  - lib
76
- required_ruby_version: !ruby/object:Gem::Requirement
72
+ required_ruby_version: !ruby/object:Gem::Requirement
77
73
  none: false
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: "0"
82
- required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
79
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- version: "0"
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
88
84
  requirements: []
89
-
90
85
  rubyforge_project:
91
- rubygems_version: 1.8.5
86
+ rubygems_version: 1.8.10
92
87
  signing_key:
93
88
  specification_version: 3
94
89
  summary: Simple daemonized EventMachine engine framework with plug-in support
95
- test_files:
96
- - test/helper.rb
97
- - test/unit/pigeon_backlog_test.rb
98
- - test/unit/pigeon_dispatcher_test.rb
99
- - test/unit/pigeon_engine_test.rb
100
- - test/unit/pigeon_launcher_test.rb
101
- - test/unit/pigeon_option_accessor_test.rb
102
- - test/unit/pigeon_processor_test.rb
103
- - test/unit/pigeon_queue_test.rb
104
- - test/unit/pigeon_scheduler_test.rb
105
- - test/unit/pigeon_sorted_array_test.rb
106
- - test/unit/pigeon_task_test.rb
107
- - test/unit/pigeon_test.rb
90
+ test_files: []