slave 0.2.0 → 1.0.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 +164 -26
- data/README.tmpl +83 -0
- data/doc/classes/(@object = Object.new).html +117 -0
- data/doc/classes/(o = Object.new).html +117 -0
- data/doc/classes/@object.html +117 -0
- data/doc/classes/Slave.html +458 -225
- data/doc/classes/Slave/Heartbeat.html +200 -199
- data/doc/classes/o.html +117 -0
- data/doc/classes/object.html +117 -0
- data/doc/created.rid +1 -1
- data/doc/dot/f_0.jpg +0 -0
- data/doc/dot/f_1.dot +9 -0
- data/doc/dot/f_1.jpg +0 -0
- data/doc/files/README.html +200 -45
- data/doc/files/lib/slave_rb.html +4 -2
- data/doc/fr_class_index.html +1 -0
- data/doc/fr_method_index.html +23 -19
- data/gen_readme.rb +32 -0
- data/lib/{slave-0.2.0.rb → slave-1.0.0.rb} +185 -60
- data/lib/slave.rb +185 -60
- data/{sample → samples}/a.rb +7 -10
- data/samples/b.rb +22 -0
- data/samples/c.rb +21 -0
- data/samples/d.rb +9 -0
- data/samples/e.rb +11 -0
- data/slave-1.0.0.gem +0 -0
- data/test.old/slave.rb +21 -0
- metadata +19 -7
- data/sample/b.rb +0 -8
- data/sample/c.rb +0 -109
data/samples/d.rb
ADDED
data/samples/e.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'slave'
|
2
|
+
#
|
3
|
+
# slaves never outlive their parent. if the parent exits, even under kill -9,
|
4
|
+
# the child will die.
|
5
|
+
#
|
6
|
+
slave = Slave.new{ at_exit{ p 'child' }; 'the server is this string' }
|
7
|
+
|
8
|
+
Process.kill brutal=9, the_parent_pid=Process.pid
|
9
|
+
#
|
10
|
+
# even though parent dies a nasty death the child will still print 'child'
|
11
|
+
#
|
data/slave-1.0.0.gem
ADDED
File without changes
|
data/test.old/slave.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
%w(lib ../lib . ..).each{|d| $:.unshift d}
|
4
|
+
require 'slave'
|
5
|
+
|
6
|
+
STDOUT.sync = true
|
7
|
+
STDERR.sync = true
|
8
|
+
|
9
|
+
class SlaveTest < Test::Unit::TestCase
|
10
|
+
#--{{{
|
11
|
+
def setup
|
12
|
+
end
|
13
|
+
|
14
|
+
def teardown
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_00
|
18
|
+
s = Slave.new Array.new
|
19
|
+
end
|
20
|
+
#--}}}
|
21
|
+
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: slave
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2006-
|
6
|
+
version: 1.0.0
|
7
|
+
date: 2006-10-13 00:00:00.000000 -06:00
|
8
8
|
summary: slave
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -30,17 +30,19 @@ authors:
|
|
30
30
|
- Ara T. Howard
|
31
31
|
files:
|
32
32
|
- install.rb
|
33
|
-
-
|
33
|
+
- test.old
|
34
34
|
- lib
|
35
35
|
- README
|
36
36
|
- rdoc.cmd
|
37
|
+
- slave-1.0.0.gem
|
37
38
|
- doc
|
38
39
|
- gemspec.rb
|
39
|
-
-
|
40
|
-
-
|
41
|
-
-
|
40
|
+
- samples
|
41
|
+
- README.tmpl
|
42
|
+
- gen_readme.rb
|
43
|
+
- test.old/slave.rb
|
42
44
|
- lib/slave.rb
|
43
|
-
- lib/slave-0.
|
45
|
+
- lib/slave-1.0.0.rb
|
44
46
|
- doc/index.html
|
45
47
|
- doc/files
|
46
48
|
- doc/fr_class_index.html
|
@@ -62,7 +64,17 @@ files:
|
|
62
64
|
- doc/dot/f_0.jpg
|
63
65
|
- doc/classes/Slave
|
64
66
|
- doc/classes/Slave.html
|
67
|
+
- doc/classes/(@object = Object.new).html
|
68
|
+
- doc/classes/@object.html
|
69
|
+
- doc/classes/object.html
|
70
|
+
- doc/classes/(o = Object.new).html
|
71
|
+
- doc/classes/o.html
|
65
72
|
- doc/classes/Slave/Heartbeat.html
|
73
|
+
- samples/a.rb
|
74
|
+
- samples/b.rb
|
75
|
+
- samples/c.rb
|
76
|
+
- samples/d.rb
|
77
|
+
- samples/e.rb
|
66
78
|
test_files: []
|
67
79
|
rdoc_options: []
|
68
80
|
extra_rdoc_files: []
|
data/sample/b.rb
DELETED
data/sample/c.rb
DELETED
@@ -1,109 +0,0 @@
|
|
1
|
-
$:.unshift 'lib'
|
2
|
-
$:.unshift '../lib'
|
3
|
-
|
4
|
-
require 'yaml'
|
5
|
-
require 'slave'
|
6
|
-
|
7
|
-
class Incrementer
|
8
|
-
attr :decrementer, true
|
9
|
-
def increment n
|
10
|
-
n + 1
|
11
|
-
end
|
12
|
-
def decrement n
|
13
|
-
@decrementer.decrement n
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
class Decrementer
|
18
|
-
attr :incrementer, true
|
19
|
-
def increment n
|
20
|
-
@incrementer.increment n
|
21
|
-
end
|
22
|
-
def decrement n
|
23
|
-
n - 1
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
#
|
29
|
-
#
|
30
|
-
# here we set up a triangle of communicating processes
|
31
|
-
#
|
32
|
-
# incrementer------decrementer
|
33
|
-
# \ /
|
34
|
-
# \ /
|
35
|
-
# \ /
|
36
|
-
# \ /
|
37
|
-
# \ /
|
38
|
-
# parent
|
39
|
-
#
|
40
|
-
#
|
41
|
-
|
42
|
-
incrementer_slave = Slave::new Incrementer::new
|
43
|
-
incrementer = incrementer_slave.object
|
44
|
-
|
45
|
-
puts '---'
|
46
|
-
puts 'incrementer :'
|
47
|
-
puts " sockect : #{ incrementer_slave.socket.inspect }"
|
48
|
-
puts " uri : #{ incrementer_slave.uri.inspect }"
|
49
|
-
puts " pid : #{ incrementer_slave.pid.inspect }"
|
50
|
-
puts
|
51
|
-
|
52
|
-
decrementer_slave = Slave::new Decrementer::new
|
53
|
-
decrementer = decrementer_slave.object
|
54
|
-
|
55
|
-
puts '---'
|
56
|
-
puts 'decrementer :'
|
57
|
-
puts " sockect : #{ decrementer_slave.socket.inspect }"
|
58
|
-
puts " uri : #{ decrementer_slave.uri.inspect }"
|
59
|
-
puts " pid : #{ decrementer_slave.pid.inspect }"
|
60
|
-
puts
|
61
|
-
|
62
|
-
#
|
63
|
-
# connect incrementer and decrementer
|
64
|
-
#
|
65
|
-
|
66
|
-
incrementer.decrementer = decrementer
|
67
|
-
decrementer.incrementer = incrementer
|
68
|
-
|
69
|
-
#
|
70
|
-
# now we can call methods on each drb object, and they can also call methods on
|
71
|
-
# each other
|
72
|
-
#
|
73
|
-
|
74
|
-
n = 0
|
75
|
-
|
76
|
-
#n = incrementer.increment n
|
77
|
-
#p n #=> 1
|
78
|
-
y "incrementer.increment(#{ n })" => (n = incrementer.increment(n))
|
79
|
-
|
80
|
-
#n = decrementer.decrement n
|
81
|
-
#p n #=> 0
|
82
|
-
y "decrementer.decrement(#{ n })" => (n = decrementer.decrement(n))
|
83
|
-
|
84
|
-
#n = decrementer.increment n
|
85
|
-
#p n #=> 1
|
86
|
-
y "decrementer.increment(#{ n })" => (n = decrementer.increment(n))
|
87
|
-
|
88
|
-
#n = incrementer.decrement n
|
89
|
-
#p n #=> 0
|
90
|
-
y "incrementer.decrement(#{ n })" => (n = incrementer.decrement(n))
|
91
|
-
|
92
|
-
#
|
93
|
-
# we can explicitly shutdown certain slaves
|
94
|
-
#
|
95
|
-
|
96
|
-
incrementer_slave.shutdown
|
97
|
-
#n = decrementer.decrement 43
|
98
|
-
#p n #=> 42
|
99
|
-
n = 43
|
100
|
-
y "decrementer.decrement(#{ n })" => (n = decrementer.decrement(n))
|
101
|
-
|
102
|
-
#
|
103
|
-
# Slaves cannot live beyond their parent so we simply exit and all living slaves
|
104
|
-
# will eventually die. how long it takes to die is determined by the
|
105
|
-
# pulse_rate - the next time the Heartbeat trys to ping the parent the Slave
|
106
|
-
# will die.
|
107
|
-
#
|
108
|
-
|
109
|
-
exit
|