iprocess 5.0.5 → 5.1.0

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/README.md CHANGED
@@ -54,27 +54,17 @@ __3.__
54
54
 
55
55
  A demo of how you would spawn two subprocesses asynchronously.
56
56
  Although the subprocesses are spawned asynchrounsly you can still
57
- communicate by using an API tailored to asynchrounous programming. The example
58
- may not be the best, though:
57
+ communicate by defining a callback the subprocess can call when it completes.
58
+ The example may not be the best, though:
59
59
 
60
60
  ```ruby
61
61
  class Inbox
62
- def initialize
63
- @msgs = []
64
- end
65
-
66
- def msgs
67
- @msgs
68
- end
69
-
70
- def recv(msg)
71
- @msgs << msg
62
+ def recv(pid)
63
+ puts "'#{pid}' has finished!"
72
64
  end
73
65
  end
74
66
  inbox = Inbox.new
75
- IProcess.spawn!(2, Inbox.new) { Process.pid }
76
- sleep 0.1
77
- p inbox.msgs
67
+ IProcess.spawn!(2, inbox) { Process.pid }
78
68
  ```
79
69
 
80
70
  __SERIALIZERS__
data/lib/iprocess.rb CHANGED
@@ -54,9 +54,8 @@ class IProcess
54
54
  def self.spawn!(number_of, inbox, obj = nil, &worker)
55
55
  forks = fork number_of, obj, &worker
56
56
  forks.each do |subprocess|
57
- Thread.new do
58
- inbox.recv subprocess.result
59
- end
57
+ t = Thread.new { inbox.recv subprocess.result }
58
+ at_exit { t.join }
60
59
  end
61
60
  end
62
61
 
@@ -1,3 +1,3 @@
1
1
  class IProcess
2
- VERSION = '5.0.5'
2
+ VERSION = '5.1.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iprocess
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.5
4
+ version: 5.1.0
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: 2013-01-12 00:00:00.000000000 Z
12
+ date: 2013-02-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ichannel