summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/iotas/particle.rb6
-rw-r--r--lib/iotas/spin.rb4
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/iotas/particle.rb b/lib/iotas/particle.rb
index 850c6ad..3cb48b3 100644
--- a/lib/iotas/particle.rb
+++ b/lib/iotas/particle.rb
@@ -134,6 +134,12 @@ module Iotas
@dsts.shift
end
#
+ def dst_reached!
+ d = @dst
+ @dst = nil
+ d
+ end
+ #
def error! e, dst=nil
@action = Iotas::ACT_ERROR
@dst = dst||@src
diff --git a/lib/iotas/spin.rb b/lib/iotas/spin.rb
index 6383ff9..e8c48e1 100644
--- a/lib/iotas/spin.rb
+++ b/lib/iotas/spin.rb
@@ -128,11 +128,11 @@ module Iotas
while @run and (@sys_fifo.length>0 or @app_fifo.length>0)
while @run and @sys_fifo.length>0
p = @sys_fifo.shift
- p.dst.process_sys_p p
+ p.dst_reached!.process_sys_p p
end
while @run and @app_fifo.length>0
p = @app_fifo.shift
- p.dst.process_p p
+ p.dst_reached!.process_p p
break
end
end