psched 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/psched.rb +12 -7
- data/lib/psched/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: 2618d52912d1a08593f44940d90bbbb503f48219
|
4
|
+
data.tar.gz: b2a5e8b33db59636e8e2127fa0d7794daca3e18b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f39ada8cf3c15e5cdfc8bdc35369f445e3f23b6bbe598fe8e08938b04d59acf6f72c9e305ad41d928ab682e16aebeb6e987ce0a4d06453868be4cf9a2da8b6a
|
7
|
+
data.tar.gz: 5a697c532f4ad04f0aa1004b590b1aabdc0aac1d1bc3d200072e8cf37c0680c7ec12cb8fde5d7c7967f78207fc23319158d4c628134eb5b732448e8402a8cd95
|
data/lib/psched.rb
CHANGED
@@ -88,7 +88,10 @@ module PSched
|
|
88
88
|
# The Task Execution Time
|
89
89
|
# @!attribute [r] step
|
90
90
|
# The time step in seconds
|
91
|
-
|
91
|
+
# @!attribute [r] start_time
|
92
|
+
# The time at the beginning of the current Operation
|
93
|
+
attr_reader :step, :tet, :start_time
|
94
|
+
|
92
95
|
# Initializer
|
93
96
|
# @param [Numeric] step the timestep in seconds
|
94
97
|
def initialize(step)
|
@@ -124,13 +127,15 @@ module PSched
|
|
124
127
|
# @param [Fixnum,nil] n_iter the maximum number of iterations.
|
125
128
|
# If nil it loops indefinitedly
|
126
129
|
# @yieldparam [Fixnum] i the number of elapsed iterations
|
127
|
-
# @yieldparam [
|
130
|
+
# @yieldparam [Float] t the time elapsed since the beginning of current Operation
|
131
|
+
# @yieldparam [Float] tet the Task Execution Time of previous step
|
128
132
|
# @raise [ArgumentError] unless a block is given
|
129
133
|
# @raise [RealTimeError] if TET exceeds @step
|
130
134
|
def start(n_iter=nil)
|
135
|
+
raise ArgumentError, "Need a block!" unless block_given?
|
131
136
|
@active = true
|
132
137
|
i = 0
|
133
|
-
|
138
|
+
@start_time = Time.now
|
134
139
|
Signal.trap(:ALRM) do
|
135
140
|
# If there is still a pending step, raises an error containing
|
136
141
|
# information about the CURRENT step
|
@@ -142,7 +147,7 @@ module PSched
|
|
142
147
|
else
|
143
148
|
start = Time.now
|
144
149
|
@lock = true
|
145
|
-
result = yield(i, @tet)
|
150
|
+
result = yield(i, Time.now - @start_time, @tet)
|
146
151
|
i += 1
|
147
152
|
self.stop if (n_iter and i >= n_iter)
|
148
153
|
self.stop if (result.kind_of? Symbol and result == :stop)
|
@@ -177,9 +182,9 @@ end
|
|
177
182
|
if $0 == __FILE__ then
|
178
183
|
PSched::Operation.prioritize
|
179
184
|
|
180
|
-
op = PSched::Operation.new(0.
|
181
|
-
op.start(10) do |i|
|
182
|
-
puts "Ping #{i}"
|
185
|
+
op = PSched::Operation.new(0.5)
|
186
|
+
op.start(10) do |i, t|
|
187
|
+
puts "Ping #{i}: #{t}"
|
183
188
|
end
|
184
189
|
|
185
190
|
Signal.trap("SIGINT") do
|
data/lib/psched/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: psched
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paolo Bosetti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|