weel 1.99.129 → 1.99.131

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 +23 -32
  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: 52a9d1b00bfbd9df62e95f290c520c447b8cb2bb4d4add32efa2b7ec2e31fc54
4
- data.tar.gz: 8d0d3bb0a413fb1ad7a2d81ea63c2eade55e5f0173045daaced8f495fc6f1de0
3
+ metadata.gz: c1bd5d96af8cbfad938bd5bd98a6fbccd61b63e59a234daf8f2c72b9f9a105aa
4
+ data.tar.gz: 8719914b17a95be381f73a19035923e31175648269d19b7534eea89849befa58
5
5
  SHA512:
6
- metadata.gz: cce8bf3f578fd2700c317a011437fc6f806f5b4b51d335473a041c3e0253fa06e981d9dfd00edebbae8c9cad1b8a1bbfe20e4afab3445b1549eda6cab18b5281
7
- data.tar.gz: 8497d993333e112bf56c4431040ca454ee8eeeb57f6fd9437abe9c6deac2b6115c0b672aa28e8ce2f47d23dcc5b5f6226315fd6e0d9f01d7507bfe1460c48b86
6
+ metadata.gz: a5aadbf31e025bf2fe221654b90a0694862670f094e31727dd2f201c2da953e754c118e8a28e51c8c8c85f2ee4ec373bf9326222479362b4e14f3570cf6631ff
7
+ data.tar.gz: ea7636318c8ecab9e7ac87fd73c2722b88724bf07e7c33be30cde8cfe3dd435199fd03ef835da0549760e8c1d621c59d9dc7ec54c579cc5b4b6a36faf5e5d93d
data/lib/weel.rb CHANGED
@@ -355,9 +355,8 @@ class WEEL
355
355
  def activity_passthrough_value; end
356
356
  def activity_uuid; '42424242-cpee-cpee-cpee-424242424242'; end
357
357
 
358
- def activity_no_longer_necessary; end
359
-
360
358
  def inform_activity_done; end
359
+ def inform_activity_cancelled; end
361
360
  def inform_activity_manipulate; end
362
361
  def inform_activity_failed(err); end
363
362
  def inform_manipulate_change(status,changed_data,changed_endpoints,data,endpoints); end
@@ -380,8 +379,8 @@ class WEEL
380
379
  end
381
380
  end
382
381
 
383
- def join_branches(branches); end
384
- def split_branches(branches); end
382
+ def join_branches(id,branches=[]); end
383
+ def split_branches(id,branches=[]); end
385
384
  end # }}}
386
385
 
387
386
  class Position # {{{
@@ -534,7 +533,7 @@ class WEEL
534
533
  end
535
534
 
536
535
  cw = @__weel_connectionwrapper.new @__weel_connectionwrapper_args
537
- cw.split_branches(Thread.current[:branch_traces])
536
+ cw.split_branches Thread.current.__id__, Thread.current[:branch_traces]
538
537
 
539
538
  Thread.current[:branches].each do |thread|
540
539
  # decide after executing block in parallel cause for coopis
@@ -547,7 +546,7 @@ class WEEL
547
546
 
548
547
  Thread.current[:branch_event].wait unless self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped || Thread.current[:branches].length == 0
549
548
 
550
- cw.join_branches(Thread.current[:branch_traces])
549
+ cw.join_branches Thread.current.__id__, Thread.current[:branch_traces]
551
550
 
552
551
  unless self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped
553
552
  # first set all to no_longer_neccessary, just in case, but this should not be necessary
@@ -635,9 +634,11 @@ class WEEL
635
634
  Thread.current[:alternative_mode] << mode
636
635
 
637
636
  cw = @__weel_connectionwrapper.new @__weel_connectionwrapper_args
638
- cw.split_branches(Thread.current[:branch_traces])
639
637
 
638
+ cw.split_branches Thread.current.__id__
640
639
  __weel_protect_yield(&block)
640
+ cw.join_branches Thread.current.__id__
641
+
641
642
  Thread.current[:alternative_executed].pop
642
643
  Thread.current[:alternative_mode].pop
643
644
  nil
@@ -754,16 +755,6 @@ class WEEL
754
755
  self.__weel_state = :stopping
755
756
  end #}}}
756
757
 
757
- def status # {{{
758
- @__weel_status
759
- end # }}}
760
- def data # {{{
761
- ReadOnlyHash.new(@__weel_data)
762
- end # }}}
763
- def endpoints # {{{
764
- ReadHash.new(@__weel_endpoints)
765
- end # }}}
766
-
767
758
  private
768
759
  def __weel_protect_yield(*local) #{{{
769
760
  begin
@@ -898,7 +889,6 @@ class WEEL
898
889
  waitingresult = Thread.current[:continue].wait unless Thread.current[:nolongernecessary] || self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped
899
890
 
900
891
  if Thread.current[:nolongernecessary]
901
- connectionwrapper.activity_no_longer_necessary
902
892
  raise Signal::NoLongerNecessary
903
893
  end
904
894
  if self.__weel_state == :stopping || self.__weel_state == :finishing
@@ -912,7 +902,11 @@ class WEEL
912
902
  code, cmess = if waitingresult == WEEL::Signal::UpdateAgain
913
903
  [update, 'update']
914
904
  elsif waitingresult == WEEL::Signal::Salvage
915
- [salvage, 'salvage'] || raise('HTTP Error. The service return status was not between 200 and 300.')
905
+ if salvage
906
+ [salvage, 'salvage']
907
+ else
908
+ raise('HTTP Error. The service return status was not between 200 and 300.')
909
+ end
916
910
  else
917
911
  [finalize, 'finalize']
918
912
  end
@@ -933,6 +927,8 @@ class WEEL
933
927
  @__weel_endpoints
934
928
  )
935
929
  throw(Signal::Again, Signal::Again) if ma.nil? || ma == Signal::Again # this signal again loops "there is a catch" because rescue signal throw that throughly restarts the task
930
+ else
931
+
936
932
  end
937
933
  end while waitingresult == Signal::UpdateAgain # this signal again loops because async update, proposal: rename to UpdateAgain
938
934
  if connectionwrapper.activity_passthrough_value.nil?
@@ -951,6 +947,7 @@ class WEEL
951
947
  wp.detail = :unmark
952
948
  end
953
949
  rescue Signal::NoLongerNecessary
950
+ connectionwrapper.inform_activity_cancelled
954
951
  connectionwrapper.inform_activity_done
955
952
  @__weel_positions.delete wp
956
953
  Thread.current[:branch_position] = nil
@@ -1064,7 +1061,7 @@ class WEEL
1064
1061
  def __weel_state=(newState)# {{{
1065
1062
  return @__weel_state if newState == @__weel_state && @__weel_state != :ready
1066
1063
 
1067
- @__weel_positions = Array.new if newState == :running || @dslr.__weel_state == :simulating
1064
+ @__weel_positions = Array.new if newState == :running
1068
1065
  @__weel_state = newState
1069
1066
 
1070
1067
  if newState == :stopping || newState == :finishing
@@ -1145,7 +1142,7 @@ public
1145
1142
  @dslr.__weel_state = :stopping
1146
1143
  @dslr.__weel_connectionwrapper::inform_syntax_error(@dslr.__weel_connectionwrapper_args,err,code)
1147
1144
  end
1148
- if @dslr.__weel_state == :running || @dslr.__weel_state == :finishing || @dslr.__weel_state == :simulating
1145
+ if @dslr.__weel_state == :running || @dslr.__weel_state == :finishing
1149
1146
  ipc = { :unmark => [] }
1150
1147
  @dslr.__weel_positions.each{ |wp| ipc[:unmark] << wp }
1151
1148
  @dslr.__weel_positions.clear
@@ -1204,7 +1201,7 @@ public
1204
1201
  # Stop the workflow execution
1205
1202
  def stop # {{{
1206
1203
  Thread.new do
1207
- if @dslr.__weel_state == :running || @dslr.__weel_state == :simulating
1204
+ if @dslr.__weel_state == :running
1208
1205
  @dslr.__weel_state = :stopping
1209
1206
  @dslr.__weel_main.join if @dslr.__weel_main
1210
1207
  elsif @dslr.__weel_state == :ready || @dslr.__weel_state == :stopped
@@ -1226,18 +1223,12 @@ public
1226
1223
  end
1227
1224
  end
1228
1225
  end # }}}
1229
- # Sim the workflow execution
1226
+
1230
1227
  def sim # {{{
1231
- return nil if @dslr.__weel_state != :ready && @dslr.__weel_state != :stopped
1228
+ stat = @dslr.__weel_state
1229
+ return nil unless stat == :ready || stat == :stopped
1232
1230
  @dslr.__weel_main = Thread.new do
1233
- Thread.current[:branch_search] = true if @dslr.__weel_search_positions.any?
1234
- begin
1235
- __weel_control_flow(:simulating, stat)
1236
- rescue => e
1237
- puts e.message
1238
- puts e.backtrace
1239
- connectionwrapper::inform_connectionwrapper_error connectionwrapper_args, e
1240
- end
1231
+ __weel_control_flow :simulating, stat
1241
1232
  end
1242
1233
  end # }}}
1243
1234
 
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.129"
3
+ s.version = "1.99.131"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0-or-later"
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.129
4
+ version: 1.99.131
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-10-01 00:00:00.000000000 Z
12
+ date: 2024-10-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
102
  requirements: []
103
- rubygems_version: 3.5.11
103
+ rubygems_version: 3.5.16
104
104
  signing_key:
105
105
  specification_version: 4
106
106
  summary: Workflow Execution Engine Library (WEEL)