weel 1.99.113 → 1.99.115

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/weel.rb +7 -2
  3. data/weel.gemspec +1 -1
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ccdb4515278ad68f38a35abef85197ca3f0732131f93c2323fe3e8cb1123df39
4
- data.tar.gz: c436c8bf90eca6a370d67a71c14ef094507b43802ce2bf6b10bb9d863034a814
3
+ metadata.gz: 2f20fd5f7b32a6434668eeaaa8045d5c0296572bef72e2f5c379463db03f2920
4
+ data.tar.gz: 19f0d8bec594c5dbcd7c1d320ff48f57e79576cf9a0ce49ddd8831941fdcf300
5
5
  SHA512:
6
- metadata.gz: 055bc4890e45536bd725110f837b57f6fb810811ae9b17ce94c9f0f286ba73e3dc19bf6d6170455f3a687d3dac500e2dac6e5886922ba17e601034a562f808ff
7
- data.tar.gz: 9e18656c48d1e8bb0d580e2eb0336161df469a38da3964eab0af0fa4d19593f85c40a20a55cd5a6299d113ccb4a1ef023531bf47d031f2ef5a0469ea8f23e13a
6
+ metadata.gz: aa1b2e8be0012e82d0357898e6d1e393899c4b1e1fca9351d9e129cb0bad2098d4e9455aa7167f7692b4befcdb8b413fb57b89f7a1bbc7fa07518667340d5dc9
7
+ data.tar.gz: b3f2448a93b65276467bf1cf7e4317313063bbd36e7658d84d3668e924b629812b4172d674b67d7a22fd49e412b3106d68c2289ffefcc7f0b1110de5e24f568a
data/lib/weel.rb CHANGED
@@ -486,7 +486,7 @@ class WEEL
486
486
  # Defines Workflow paths that can be executed parallel.
487
487
  # May contain multiple branches (parallel_branch)
488
488
  def parallel(type=nil,&block)# {{{
489
- return if self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped
489
+ return if self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped || Thread.current[:nolongernecessary]
490
490
 
491
491
  Thread.current[:branches] = []
492
492
  Thread.current[:branch_traces] = {}
@@ -586,6 +586,7 @@ class WEEL
586
586
  branch_parent[:mutex].synchronize do
587
587
  Thread.current[:branch_status] = true
588
588
  branch_parent[:branch_finished_count] += 1
589
+
589
590
  if branch_parent[:branch_finished_count] == branch_parent[:branch_wait_count] && self.__weel_state != :stopping && self.__weel_state != :finishing
590
591
  branch_parent[:branch_event].continue
591
592
  end
@@ -647,6 +648,7 @@ class WEEL
647
648
 
648
649
  # Defines a critical block (=Mutex)
649
650
  def critical(id,&block)# {{{
651
+ return if self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped || Thread.current[:nolongernecessary]
650
652
  @__weel_critical ||= Mutex.new
651
653
  semaphore = nil
652
654
  @__weel_critical.synchronize do
@@ -901,6 +903,7 @@ class WEEL
901
903
  # handshake call and wait until it finished
902
904
  waitingresult = nil
903
905
  waitingresult = Thread.current[:continue].wait unless Thread.current[:nolongernecessary] || self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped
906
+
904
907
  raise waitingresult[1] if !waitingresult.nil? && waitingresult.is_a?(Array) && waitingresult.length == 2 && waitingresult[0] == WEEL::Signal::Error
905
908
 
906
909
  if Thread.current[:nolongernecessary]
@@ -913,6 +916,8 @@ class WEEL
913
916
  raise Signal::Proceed if wp.passthrough # if stop, but no passthrough, let manipulate happen and then stop
914
917
  end
915
918
 
919
+ next if waitingresult == WEEL::Signal::Again && connectionwrapper.activity_result_value&.length == 0
920
+
916
921
  code = if waitingresult == WEEL::Signal::Again
917
922
  update
918
923
  elsif waitingresult == WEEL::Signal::Salvage
@@ -968,6 +973,7 @@ class WEEL
968
973
  rescue Signal::NoLongerNecessary
969
974
  @__weel_positions.delete wp
970
975
  Thread.current[:branch_position] = nil
976
+ wp.passthrough = nil
971
977
  wp.detail = :unmark
972
978
  @__weel_connectionwrapper::inform_position_change @__weel_connectionwrapper_args, :unmark => [wp]
973
979
  rescue Signal::StopSkipManipulate, Signal::Stop
@@ -1005,7 +1011,6 @@ class WEEL
1005
1011
  end # }}}
1006
1012
 
1007
1013
  def __weel_recursive_print(thread,indent='')# {{{
1008
- p "#{indent}#{thread}"
1009
1014
  if thread[:branches]
1010
1015
  thread[:branches].each do |b|
1011
1016
  __weel_recursive_print(b,indent+' ')
data/weel.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "weel"
3
- s.version = "1.99.113"
3
+ s.version = "1.99.115"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "Workflow Execution Engine Library (WEEL)"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.99.113
4
+ version: 1.99.115
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-03-01 00:00:00.000000000 Z
12
+ date: 2024-06-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  requirements: []
105
- rubygems_version: 3.4.10
105
+ rubygems_version: 3.5.9
106
106
  signing_key:
107
107
  specification_version: 4
108
108
  summary: Workflow Execution Engine Library (WEEL)