crabfarm 0.0.8 → 0.0.9
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.
- checksums.yaml +4 -4
- data/lib/crabfarm/cli.rb +4 -0
- data/lib/crabfarm/engines/safe_state_loop.rb +24 -9
- data/lib/crabfarm/errors.rb +1 -1
- data/lib/crabfarm/modes/server.rb +1 -1
- data/lib/crabfarm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb3be13182df3bfb8b36dbf9561680f76b0a8c4a
|
4
|
+
data.tar.gz: f2dfc98fd27fc4523ea715ec8dd811a98977237d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db1a6932c2ff5645f3dfe8c77c3e092a39fd9c43ad52293098180cff4f5732cc1b7cd71eb5460556fcb56de456d11592a2ba04d5681bad4e198552fab12aa71d
|
7
|
+
data.tar.gz: 81b972f5cec55ba61d90ec943944ad17524b20fc199dbab37fad746a26de62631f18680efcc6f67cc12c03f1b383ca9ce800aa91f8d44df300e4579a57e1bdb3
|
data/lib/crabfarm/cli.rb
CHANGED
@@ -32,6 +32,9 @@ module Crabfarm
|
|
32
32
|
c.desc "Set the server min and max threads, defaults to 0:16"
|
33
33
|
c.flag [:t,:threads]
|
34
34
|
|
35
|
+
c.desc "Start the server in verbose mode"
|
36
|
+
c.switch :verbose, :default_value => false
|
37
|
+
|
35
38
|
c.desc "Activate code reload before every request"
|
36
39
|
c.switch :reload, :default_value => true
|
37
40
|
|
@@ -45,6 +48,7 @@ module Crabfarm
|
|
45
48
|
server_options[:Host] = options[:host] unless options[:host].nil?
|
46
49
|
server_options[:Port] = options[:port] || 3100
|
47
50
|
server_options[:Threads] = options[:threads] unless options[:threads].nil?
|
51
|
+
server_options[:Verbose] = options[:verbose]
|
48
52
|
|
49
53
|
ActiveSupport::Dependencies.mechanism = :require unless options[:reload]
|
50
54
|
Crabfarm.config.set Support::GLI.parse_options options
|
@@ -21,13 +21,18 @@ module Crabfarm
|
|
21
21
|
|
22
22
|
def change_state(_name, _params={}, _wait=nil)
|
23
23
|
@lock.synchronize {
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
if @working
|
25
|
+
raise StillWorkingError.new unless matches_next_state? _name, _params
|
26
|
+
wait_and_load_struct _wait
|
27
|
+
elsif matches_current_state? _name, _params
|
28
|
+
state_as_struct
|
29
|
+
else
|
30
|
+
@next_state_name = _name
|
31
|
+
@next_state_params = _params
|
32
|
+
@working = true
|
29
33
|
|
30
|
-
|
34
|
+
wait_and_load_struct _wait
|
35
|
+
end
|
31
36
|
}
|
32
37
|
end
|
33
38
|
|
@@ -50,6 +55,14 @@ module Crabfarm
|
|
50
55
|
|
51
56
|
private
|
52
57
|
|
58
|
+
def matches_current_state?(_name, _params)
|
59
|
+
_name == @state_name and _params == @state_params
|
60
|
+
end
|
61
|
+
|
62
|
+
def matches_next_state?(_name, _params)
|
63
|
+
_name == @next_state_name and _params == @next_state_params
|
64
|
+
end
|
65
|
+
|
53
66
|
def wait_and_load_struct(_wait)
|
54
67
|
# need to use this method because mutex are not reentrant and monitors are slow.
|
55
68
|
wait_while_working _wait unless _wait.nil?
|
@@ -90,9 +103,11 @@ module Crabfarm
|
|
90
103
|
end
|
91
104
|
end.real
|
92
105
|
|
93
|
-
@
|
94
|
-
|
95
|
-
|
106
|
+
@lock.synchronize {
|
107
|
+
@state_name = @next_state_name
|
108
|
+
@state_params = @next_state_params
|
109
|
+
@working = false
|
110
|
+
}
|
96
111
|
else sleep 0.2 end
|
97
112
|
end
|
98
113
|
end
|
data/lib/crabfarm/errors.rb
CHANGED
data/lib/crabfarm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crabfarm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ignacio Baixas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jbuilder
|