weel 1.99.113 → 1.99.115

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.
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)