@@ -9,7 +9,7 @@ module Concurrent
9
9
10
10
# # Guide
11
11
#
12
- # The guide is best place to start with promises, see {file:doc/promises.out.md}.
12
+ # The guide is ** best place** to start with promises, see {file:doc/promises.out.md}.
13
13
#
14
14
# {include:file:doc/promises-main.md}
15
15
module Promises
@@ -249,7 +249,7 @@ def zip_futures(*futures_and_or_events)
249
249
# @param [AbstractEventFuture] futures_and_or_events
250
250
# @return [Future]
251
251
def zip_futures_on ( default_executor , *futures_and_or_events )
252
- ZipFuturesPromise . new_blocked ( futures_and_or_events , default_executor ) . future
252
+ ZipFuturesPromise . new_blocked_by ( futures_and_or_events , default_executor ) . future
253
253
end
254
254
255
255
alias_method :zip , :zip_futures
@@ -267,7 +267,7 @@ def zip_events(*futures_and_or_events)
267
267
# @param [AbstractEventFuture] futures_and_or_events
268
268
# @return [Event]
269
269
def zip_events_on ( default_executor , *futures_and_or_events )
270
- ZipEventsPromise . new_blocked ( futures_and_or_events , default_executor ) . event
270
+ ZipEventsPromise . new_blocked_by ( futures_and_or_events , default_executor ) . event
271
271
end
272
272
273
273
# @!macro promises.shortcut.on
@@ -289,7 +289,7 @@ def any_resolved_future(*futures_and_or_events)
289
289
# @param [AbstractEventFuture] futures_and_or_events
290
290
# @return [Future]
291
291
def any_resolved_future_on ( default_executor , *futures_and_or_events )
292
- AnyResolvedFuturePromise . new_blocked ( futures_and_or_events , default_executor ) . future
292
+ AnyResolvedFuturePromise . new_blocked_by ( futures_and_or_events , default_executor ) . future
293
293
end
294
294
295
295
# @!macro promises.shortcut.on
@@ -308,7 +308,7 @@ def any_fulfilled_future(*futures_and_or_events)
308
308
# @param [AbstractEventFuture] futures_and_or_events
309
309
# @return [Future]
310
310
def any_fulfilled_future_on ( default_executor , *futures_and_or_events )
311
- AnyFulfilledFuturePromise . new_blocked ( futures_and_or_events , default_executor ) . future
311
+ AnyFulfilledFuturePromise . new_blocked_by ( futures_and_or_events , default_executor ) . future
312
312
end
313
313
314
314
# @!macro promises.shortcut.on
@@ -324,7 +324,7 @@ def any_event(*futures_and_or_events)
324
324
# @param [AbstractEventFuture] futures_and_or_events
325
325
# @return [Event]
326
326
def any_event_on ( default_executor , *futures_and_or_events )
327
- AnyResolvedEventPromise . new_blocked ( futures_and_or_events , default_executor ) . event
327
+ AnyResolvedEventPromise . new_blocked_by ( futures_and_or_events , default_executor ) . event
328
328
end
329
329
330
330
# TODO consider adding first(count, *futures)
@@ -616,7 +616,7 @@ def chain(*args, &task)
616
616
# @overload a_future.chain_on(executor, *args, &task)
617
617
# @yield [fulfilled?, value, reason, *args] to the task.
618
618
def chain_on ( executor , *args , &task )
619
- ChainPromise . new_blocked1 ( self , @DefaultExecutor , executor , args , &task ) . future
619
+ ChainPromise . new_blocked_by1 ( self , @DefaultExecutor , executor , args , &task ) . future
620
620
end
621
621
622
622
# @return [String] Short string representation.
@@ -677,6 +677,7 @@ def on_resolution_using(executor, *args, &callback)
677
677
# Any futures depending on it will use the new default executor.
678
678
# @!macro promises.shortcut.event-future
679
679
# @abstract
680
+ # @return [AbstractEventFuture]
680
681
def with_default_executor ( executor )
681
682
raise NotImplementedError
682
683
end
@@ -807,9 +808,9 @@ class Event < AbstractEventFuture
807
808
# @return [Future, Event]
808
809
def zip ( other )
809
810
if other . is_a? ( Future )
810
- ZipFutureEventPromise . new_blocked2 ( other , self , @DefaultExecutor ) . future
811
+ ZipFutureEventPromise . new_blocked_by2 ( other , self , @DefaultExecutor ) . future
811
812
else
812
- ZipEventEventPromise . new_blocked2 ( self , other , @DefaultExecutor ) . event
813
+ ZipEventEventPromise . new_blocked_by2 ( self , other , @DefaultExecutor ) . event
813
814
end
814
815
end
815
816
@@ -820,7 +821,7 @@ def zip(other)
820
821
#
821
822
# @return [Event]
822
823
def any ( event_or_future )
823
- AnyResolvedEventPromise . new_blocked2 ( self , event_or_future , @DefaultExecutor ) . event
824
+ AnyResolvedEventPromise . new_blocked_by2 ( self , event_or_future , @DefaultExecutor ) . event
824
825
end
825
826
826
827
alias_method :| , :any
@@ -831,7 +832,7 @@ def any(event_or_future)
831
832
# @return [Event]
832
833
def delay
833
834
event = DelayPromise . new ( @DefaultExecutor ) . event
834
- ZipEventEventPromise . new_blocked2 ( self , event , @DefaultExecutor ) . event
835
+ ZipEventEventPromise . new_blocked_by2 ( self , event , @DefaultExecutor ) . event
835
836
end
836
837
837
838
# @!macro [new] promise.method.schedule
@@ -844,7 +845,7 @@ def delay
844
845
def schedule ( intended_time )
845
846
chain do
846
847
event = ScheduledPromise . new ( @DefaultExecutor , intended_time ) . event
847
- ZipEventEventPromise . new_blocked2 ( self , event , @DefaultExecutor ) . event
848
+ ZipEventEventPromise . new_blocked_by2 ( self , event , @DefaultExecutor ) . event
848
849
end . flat_event
849
850
end
850
851
@@ -866,7 +867,7 @@ def to_event
866
867
# @!macro promises.method.with_default_executor
867
868
# @return [Event]
868
869
def with_default_executor ( executor )
869
- EventWrapperPromise . new_blocked1 ( self , executor ) . event
870
+ EventWrapperPromise . new_blocked_by1 ( self , executor ) . event
870
871
end
871
872
872
873
private
@@ -980,7 +981,7 @@ def then(*args, &task)
980
981
# @return [Future]
981
982
# @yield [value, *args] to the task.
982
983
def then_on ( executor , *args , &task )
983
- ThenPromise . new_blocked1 ( self , @DefaultExecutor , executor , args , &task ) . future
984
+ ThenPromise . new_blocked_by1 ( self , @DefaultExecutor , executor , args , &task ) . future
984
985
end
985
986
986
987
# @!macro promises.shortcut.on
@@ -998,16 +999,16 @@ def rescue(*args, &task)
998
999
# @return [Future]
999
1000
# @yield [reason, *args] to the task.
1000
1001
def rescue_on ( executor , *args , &task )
1001
- RescuePromise . new_blocked1 ( self , @DefaultExecutor , executor , args , &task ) . future
1002
+ RescuePromise . new_blocked_by1 ( self , @DefaultExecutor , executor , args , &task ) . future
1002
1003
end
1003
1004
1004
1005
# @!macro promises.method.zip
1005
1006
# @return [Future]
1006
1007
def zip ( other )
1007
1008
if other . is_a? ( Future )
1008
- ZipFuturesPromise . new_blocked2 ( self , other , @DefaultExecutor ) . future
1009
+ ZipFuturesPromise . new_blocked_by2 ( self , other , @DefaultExecutor ) . future
1009
1010
else
1010
- ZipFutureEventPromise . new_blocked2 ( self , other , @DefaultExecutor ) . future
1011
+ ZipFutureEventPromise . new_blocked_by2 ( self , other , @DefaultExecutor ) . future
1011
1012
end
1012
1013
end
1013
1014
@@ -1019,7 +1020,7 @@ def zip(other)
1019
1020
#
1020
1021
# @return [Future]
1021
1022
def any ( event_or_future )
1022
- AnyResolvedFuturePromise . new_blocked2 ( self , event_or_future , @DefaultExecutor ) . future
1023
+ AnyResolvedFuturePromise . new_blocked_by2 ( self , event_or_future , @DefaultExecutor ) . future
1023
1024
end
1024
1025
1025
1026
alias_method :| , :any
@@ -1030,22 +1031,22 @@ def any(event_or_future)
1030
1031
# @return [Future]
1031
1032
def delay
1032
1033
event = DelayPromise . new ( @DefaultExecutor ) . event
1033
- ZipFutureEventPromise . new_blocked2 ( self , event , @DefaultExecutor ) . future
1034
+ ZipFutureEventPromise . new_blocked_by2 ( self , event , @DefaultExecutor ) . future
1034
1035
end
1035
1036
1036
1037
# @!macro promise.method.schedule
1037
1038
# @return [Future]
1038
1039
def schedule ( intended_time )
1039
1040
chain do
1040
1041
event = ScheduledPromise . new ( @DefaultExecutor , intended_time ) . event
1041
- ZipFutureEventPromise . new_blocked2 ( self , event , @DefaultExecutor ) . future
1042
+ ZipFutureEventPromise . new_blocked_by2 ( self , event , @DefaultExecutor ) . future
1042
1043
end . flat
1043
1044
end
1044
1045
1045
1046
# @!macro promises.method.with_default_executor
1046
1047
# @return [Future]
1047
1048
def with_default_executor ( executor )
1048
- FutureWrapperPromise . new_blocked1 ( self , executor ) . future
1049
+ FutureWrapperPromise . new_blocked_by1 ( self , executor ) . future
1049
1050
end
1050
1051
1051
1052
# Creates new future which will have result of the future returned by receiver. If receiver
@@ -1054,7 +1055,7 @@ def with_default_executor(executor)
1054
1055
# @param [Integer] level how many levels of futures should flatten
1055
1056
# @return [Future]
1056
1057
def flat_future ( level = 1 )
1057
- FlatFuturePromise . new_blocked1 ( self , level , @DefaultExecutor ) . future
1058
+ FlatFuturePromise . new_blocked_by1 ( self , level , @DefaultExecutor ) . future
1058
1059
end
1059
1060
1060
1061
alias_method :flat , :flat_future
@@ -1064,7 +1065,7 @@ def flat_future(level = 1)
1064
1065
#
1065
1066
# @return [Event]
1066
1067
def flat_event
1067
- FlatEventPromise . new_blocked1 ( self , @DefaultExecutor ) . event
1068
+ FlatEventPromise . new_blocked_by1 ( self , @DefaultExecutor ) . event
1068
1069
end
1069
1070
1070
1071
# @!macro promises.shortcut.using
@@ -1091,7 +1092,7 @@ def on_fulfillment!(*args, &callback)
1091
1092
# @!macro promises.param.args
1092
1093
# @!macro promise.param.callback
1093
1094
# @return [self]
1094
- # @yield [value *args] to the callback.
1095
+ # @yield [value, *args] to the callback.
1095
1096
def on_fulfillment_using ( executor , *args , &callback )
1096
1097
add_callback :async_callback_on_fulfillment , executor , args , callback
1097
1098
end
@@ -1138,7 +1139,7 @@ def on_rejection_using(executor, *args, &callback)
1138
1139
# end
1139
1140
# Promises.future(0, &body).run.value! # => 5
1140
1141
def run
1141
- RunFuturePromise . new_blocked1 ( self , @DefaultExecutor ) . future
1142
+ RunFuturePromise . new_blocked_by1 ( self , @DefaultExecutor ) . future
1142
1143
end
1143
1144
1144
1145
# @!visibility private
@@ -1233,7 +1234,7 @@ def resolve(raise_on_reassign = true)
1233
1234
#
1234
1235
# @return [Event]
1235
1236
def with_hidden_resolvable
1236
- @with_hidden_resolvable ||= EventWrapperPromise . new_blocked1 ( self , @DefaultExecutor ) . event
1237
+ @with_hidden_resolvable ||= EventWrapperPromise . new_blocked_by1 ( self , @DefaultExecutor ) . event
1237
1238
end
1238
1239
end
1239
1240
@@ -1289,7 +1290,7 @@ def evaluate_to!(*args, &block)
1289
1290
#
1290
1291
# @return [Future]
1291
1292
def with_hidden_resolvable
1292
- @with_hidden_resolvable ||= FutureWrapperPromise . new_blocked1 ( self , @DefaultExecutor ) . future
1293
+ @with_hidden_resolvable ||= FutureWrapperPromise . new_blocked_by1 ( self , @DefaultExecutor ) . future
1293
1294
end
1294
1295
end
1295
1296
@@ -1381,15 +1382,15 @@ class BlockedPromise < InnerPromise
1381
1382
1382
1383
private_class_method :new
1383
1384
1384
- def self . new_blocked1 ( blocker , *args , &block )
1385
+ def self . new_blocked_by1 ( blocker , *args , &block )
1385
1386
blocker_delayed = blocker . promise . delayed
1386
1387
delayed = blocker_delayed ? LockFreeStack . new . push ( blocker_delayed ) : nil
1387
1388
promise = new ( delayed , 1 , *args , &block )
1388
1389
ensure
1389
1390
blocker . add_callback :callback_notify_blocked , promise , 0
1390
1391
end
1391
1392
1392
- def self . new_blocked2 ( blocker1 , blocker2 , *args , &block )
1393
+ def self . new_blocked_by2 ( blocker1 , blocker2 , *args , &block )
1393
1394
blocker_delayed1 = blocker1 . promise . delayed
1394
1395
blocker_delayed2 = blocker2 . promise . delayed
1395
1396
# TODO (pitr-ch 23-Dec-2016): use arrays when we know it will not grow (only flat adds delay)
@@ -1408,7 +1409,7 @@ def self.new_blocked2(blocker1, blocker2, *args, &block)
1408
1409
blocker2 . add_callback :callback_notify_blocked , promise , 1
1409
1410
end
1410
1411
1411
- def self . new_blocked ( blockers , *args , &block )
1412
+ def self . new_blocked_by ( blockers , *args , &block )
1412
1413
delayed = blockers . reduce ( nil , &method ( :add_delayed ) )
1413
1414
promise = new ( delayed , blockers . size , *args , &block )
1414
1415
ensure
0 commit comments