diff --git a/src/GToolkit-GemStone-Lepiter/GtGemStoneSnippetAsynchronousExecutionStrategy.class.st b/src/GToolkit-GemStone-Lepiter/GtGemStoneSnippetAsynchronousExecutionStrategy.class.st index ef80994f..ea7fcc0a 100644 --- a/src/GToolkit-GemStone-Lepiter/GtGemStoneSnippetAsynchronousExecutionStrategy.class.st +++ b/src/GToolkit-GemStone-Lepiter/GtGemStoneSnippetAsynchronousExecutionStrategy.class.st @@ -19,6 +19,6 @@ GtGemStoneSnippetAsynchronousExecutionStrategy >> evaluate: remoteScript inSessi snippetCoderModel: aCoderModel; evaluationFailBlock: anEvaluationFailBlock. - ^ GtGemStoneSnippetPromiseResolution new + ^ GtGemStoneAsyncPromiseResolution new snippetPromise: snippetPromiseWrapper ] diff --git a/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncEvaluationElement.class.st b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncEvaluationElement.class.st index bea1acfe..56ce5bc0 100644 --- a/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncEvaluationElement.class.st +++ b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncEvaluationElement.class.st @@ -432,11 +432,11 @@ GtGemStoneAsyncEvaluationElement >> snippetPromise [ { #category : #subscriptions } GtGemStoneAsyncEvaluationElement >> subscribeToPromiseResolution [ promiseResolution announcer weak - when: GtGemStoneSnippetPromiseResolutionStartedAnnouncement + when: GtGemStoneAsyncPromiseResolutionStartedAnnouncement send: #actOnPromiseExecutionStarted to: self. promiseResolution announcer weak - when: GtGemStoneSnippetPromiseResolutionCompletedAnnouncement + when: GtGemStoneAsyncPromiseResolutionCompletedAnnouncement send: #actOnPromiseExecutionCompleted to: self. ] diff --git a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolution.class.st b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolution.class.st similarity index 61% rename from src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolution.class.st rename to src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolution.class.st index 23b7fc0e..07fc3d74 100644 --- a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolution.class.st +++ b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolution.class.st @@ -1,5 +1,5 @@ Class { - #name : #GtGemStoneSnippetPromiseResolution, + #name : #GtGemStoneAsyncPromiseResolution, #superclass : #Object, #instVars : [ 'announcer', @@ -14,18 +14,18 @@ Class { } { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> announcer [ +GtGemStoneAsyncPromiseResolution >> announcer [ ^ announcer ] { #category : #testing } -GtGemStoneSnippetPromiseResolution >> canStopExecution [ +GtGemStoneAsyncPromiseResolution >> canStopExecution [ ^ self isResolvingRunning and: [ snippetPromise canStopExecution ] ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> duration [ +GtGemStoneAsyncPromiseResolution >> duration [ ^ (startTimestamp notNil and: [ endTimestamp notNil ]) ifTrue: [ endTimestamp - startTimestamp] @@ -33,12 +33,12 @@ GtGemStoneSnippetPromiseResolution >> duration [ ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> endTimestamp [ +GtGemStoneAsyncPromiseResolution >> endTimestamp [ ^ endTimestamp ] { #category : #executing } -GtGemStoneSnippetPromiseResolution >> ensureExecuting [ +GtGemStoneAsyncPromiseResolution >> ensureExecuting [ self hasProcess ifTrue: [ ^ self ]. resolutionProcess := [ @@ -64,12 +64,12 @@ GtGemStoneSnippetPromiseResolution >> ensureExecuting [ ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> gemStoneSession [ +GtGemStoneAsyncPromiseResolution >> gemStoneSession [ ^ snippetPromise gemStoneSession ] { #category : #'gt - inspector' } -GtGemStoneSnippetPromiseResolution >> gtDefaultInspectorTool [ +GtGemStoneAsyncPromiseResolution >> gtDefaultInspectorTool [ ^(GtPhlowCompositeTool new) addTool: (GtGemStoneAsyncEvaluationPhlowTool new promiseResolution: self); @@ -77,18 +77,18 @@ GtGemStoneSnippetPromiseResolution >> gtDefaultInspectorTool [ ] { #category : #testing } -GtGemStoneSnippetPromiseResolution >> hasProcess [ +GtGemStoneAsyncPromiseResolution >> hasProcess [ ^ resolutionProcess notNil ] { #category : #testing } -GtGemStoneSnippetPromiseResolution >> hasValidResult [ +GtGemStoneAsyncPromiseResolution >> hasValidResult [ ^ snippetPromise notNil and: [ snippetPromise hasValidResult ] ] { #category : #initialization } -GtGemStoneSnippetPromiseResolution >> initialize [ +GtGemStoneAsyncPromiseResolution >> initialize [ super initialize. announcer := Announcer new. @@ -96,80 +96,80 @@ GtGemStoneSnippetPromiseResolution >> initialize [ ] { #category : #actions } -GtGemStoneSnippetPromiseResolution >> interruptEvaluation [ +GtGemStoneAsyncPromiseResolution >> interruptEvaluation [ snippetPromise interruptEvaluation ] { #category : #testing } -GtGemStoneSnippetPromiseResolution >> isResolutionProcessDone [ +GtGemStoneAsyncPromiseResolution >> isResolutionProcessDone [ ^ resolutionProcess isTerminated or: [ resolutionProcess isTerminating ] ] { #category : #testing } -GtGemStoneSnippetPromiseResolution >> isResolvingCompleted [ +GtGemStoneAsyncPromiseResolution >> isResolvingCompleted [ ^ self hasProcess and: [ self isResolutionProcessDone ] ] { #category : #testing } -GtGemStoneSnippetPromiseResolution >> isResolvingPending [ +GtGemStoneAsyncPromiseResolution >> isResolvingPending [ ^ self hasProcess not ] { #category : #testing } -GtGemStoneSnippetPromiseResolution >> isResolvingRunning [ +GtGemStoneAsyncPromiseResolution >> isResolvingRunning [ ^ self hasProcess and: [ self isResolutionProcessDone not ] ] { #category : #notifications } -GtGemStoneSnippetPromiseResolution >> notifyResolutionCompleted [ - announcer announce: GtGemStoneSnippetPromiseResolutionCompletedAnnouncement new +GtGemStoneAsyncPromiseResolution >> notifyResolutionCompleted [ + announcer announce: GtGemStoneAsyncPromiseResolutionCompletedAnnouncement new ] { #category : #notifications } -GtGemStoneSnippetPromiseResolution >> notifyResolutionStarted [ - announcer announce: GtGemStoneSnippetPromiseResolutionStartedAnnouncement new +GtGemStoneAsyncPromiseResolution >> notifyResolutionStarted [ + announcer announce: GtGemStoneAsyncPromiseResolutionStartedAnnouncement new ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> resolvedValue [ +GtGemStoneAsyncPromiseResolution >> resolvedValue [ ^ snippetPromise resolvedValue ] { #category : #actions } -GtGemStoneSnippetPromiseResolution >> resumeEvaluation [ +GtGemStoneAsyncPromiseResolution >> resumeEvaluation [ snippetPromise resumeEvaluation ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> sessionDescription [ +GtGemStoneAsyncPromiseResolution >> sessionDescription [ ^ snippetPromise sessionDescription ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> snippetPromise [ +GtGemStoneAsyncPromiseResolution >> snippetPromise [ ^ snippetPromise ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> snippetPromise: aGtGemStoneSnippetPromise [ +GtGemStoneAsyncPromiseResolution >> snippetPromise: aGtGemStoneSnippetPromise [ snippetPromise := aGtGemStoneSnippetPromise. ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> startTimestamp [ +GtGemStoneAsyncPromiseResolution >> startTimestamp [ ^ startTimestamp ] { #category : #accessing } -GtGemStoneSnippetPromiseResolution >> state [ +GtGemStoneAsyncPromiseResolution >> state [ ^ state ] { #category : #actions } -GtGemStoneSnippetPromiseResolution >> stopEvaluation [ +GtGemStoneAsyncPromiseResolution >> stopEvaluation [ snippetPromise stopEvaluation ] diff --git a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionAnnouncement.class.st b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionAnnouncement.class.st similarity index 60% rename from src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionAnnouncement.class.st rename to src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionAnnouncement.class.st index 3b5976e5..bb244d13 100644 --- a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionAnnouncement.class.st +++ b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionAnnouncement.class.st @@ -1,5 +1,5 @@ Class { - #name : #GtGemStoneSnippetPromiseResolutionAnnouncement, + #name : #GtGemStoneAsyncPromiseResolutionAnnouncement, #superclass : #Announcement, #category : #'GToolkit-GemStone-Pharo-Promises' } diff --git a/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionCompletedAnnouncement.class.st b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionCompletedAnnouncement.class.st new file mode 100644 index 00000000..a9d7f6e9 --- /dev/null +++ b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionCompletedAnnouncement.class.st @@ -0,0 +1,5 @@ +Class { + #name : #GtGemStoneAsyncPromiseResolutionCompletedAnnouncement, + #superclass : #GtGemStoneAsyncPromiseResolutionAnnouncement, + #category : #'GToolkit-GemStone-Pharo-Promises' +} diff --git a/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionStartedAnnouncement.class.st b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionStartedAnnouncement.class.st new file mode 100644 index 00000000..46a29f29 --- /dev/null +++ b/src/GToolkit-GemStone-Pharo/GtGemStoneAsyncPromiseResolutionStartedAnnouncement.class.st @@ -0,0 +1,5 @@ +Class { + #name : #GtGemStoneAsyncPromiseResolutionStartedAnnouncement, + #superclass : #GtGemStoneAsyncPromiseResolutionAnnouncement, + #category : #'GToolkit-GemStone-Pharo-Promises' +} diff --git a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionCompletedAnnouncement.class.st b/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionCompletedAnnouncement.class.st deleted file mode 100644 index 344f3939..00000000 --- a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionCompletedAnnouncement.class.st +++ /dev/null @@ -1,5 +0,0 @@ -Class { - #name : #GtGemStoneSnippetPromiseResolutionCompletedAnnouncement, - #superclass : #GtGemStoneSnippetPromiseResolutionAnnouncement, - #category : #'GToolkit-GemStone-Pharo-Promises' -} diff --git a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionStartedAnnouncement.class.st b/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionStartedAnnouncement.class.st deleted file mode 100644 index d69686a9..00000000 --- a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromiseResolutionStartedAnnouncement.class.st +++ /dev/null @@ -1,5 +0,0 @@ -Class { - #name : #GtGemStoneSnippetPromiseResolutionStartedAnnouncement, - #superclass : #GtGemStoneSnippetPromiseResolutionAnnouncement, - #category : #'GToolkit-GemStone-Pharo-Promises' -} diff --git a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromise.class.st b/src/GToolkit-GemStone-Pharo/GtRsrEvaluatorAsyncPromise.class.st similarity index 71% rename from src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromise.class.st rename to src/GToolkit-GemStone-Pharo/GtRsrEvaluatorAsyncPromise.class.st index 127b0179..5561ccd8 100644 --- a/src/GToolkit-GemStone-Pharo/GtGemStoneSnippetPromise.class.st +++ b/src/GToolkit-GemStone-Pharo/GtRsrEvaluatorAsyncPromise.class.st @@ -1,5 +1,5 @@ Class { - #name : #GtGemStoneSnippetPromise, + #name : #GtRsrEvaluatorAsyncPromise, #superclass : #Object, #instVars : [ 'gtRsrEvaluatorPromise', @@ -14,31 +14,31 @@ Class { } { #category : #accessing } -GtGemStoneSnippetPromise >> basicDeserializeResult: aResult [ +GtRsrEvaluatorAsyncPromise >> basicDeserializeResult: aResult [ ^ (self class environment at: serializationStrategy) new deserialize: aResult. ] { #category : #resolving } -GtGemStoneSnippetPromise >> break: aReason [ +GtRsrEvaluatorAsyncPromise >> break: aReason [ value := aReason. state := #Broken. ] { #category : #resolving } -GtGemStoneSnippetPromise >> breakWithEvaluationResult: evaluationResult [ +GtRsrEvaluatorAsyncPromise >> breakWithEvaluationResult: evaluationResult [ self break: evaluationResult. ] { #category : #testing } -GtGemStoneSnippetPromise >> canStopExecution [ +GtRsrEvaluatorAsyncPromise >> canStopExecution [ ^ executionContext notNil and: [ self isResolved not ] ] { #category : #utils } -GtGemStoneSnippetPromise >> createEvaluationResultFromData: aDictionaryOrObject [ +GtRsrEvaluatorAsyncPromise >> createEvaluationResultFromData: aDictionaryOrObject [ "Instantiate an evaluation result object from the given object." ^ GtGemstoneEvaluationResult @@ -46,7 +46,7 @@ GtGemStoneSnippetPromise >> createEvaluationResultFromData: aDictionaryOrObject ] { #category : #resolving } -GtGemStoneSnippetPromise >> fulfill: anObject [ +GtRsrEvaluatorAsyncPromise >> fulfill: anObject [ "Fulfill the receiver" value := anObject. @@ -54,7 +54,7 @@ GtGemStoneSnippetPromise >> fulfill: anObject [ ] { #category : #resolving } -GtGemStoneSnippetPromise >> fulfillWithEvaluationResult: evaluationResult [ +GtRsrEvaluatorAsyncPromise >> fulfillWithEvaluationResult: evaluationResult [ | computedResult | computedResult := evaluationResult computedResult. @@ -62,7 +62,7 @@ GtGemStoneSnippetPromise >> fulfillWithEvaluationResult: evaluationResult [ ] { #category : #resolving } -GtGemStoneSnippetPromise >> fullfilWithComputedResult: computedResult [ +GtRsrEvaluatorAsyncPromise >> fullfilWithComputedResult: computedResult [ | deserializedResult | deserializedResult := self basicDeserializeResult: computedResult. @@ -71,37 +71,37 @@ GtGemStoneSnippetPromise >> fullfilWithComputedResult: computedResult [ ] { #category : #accessing } -GtGemStoneSnippetPromise >> gemStoneSession [ +GtRsrEvaluatorAsyncPromise >> gemStoneSession [ ^ gemStoneSession ] { #category : #accessing } -GtGemStoneSnippetPromise >> gemStoneSession: aGemStoneSession [ +GtRsrEvaluatorAsyncPromise >> gemStoneSession: aGemStoneSession [ gemStoneSession := aGemStoneSession ] { #category : #accessing } -GtGemStoneSnippetPromise >> gtRsrEvaluatorPromise [ +GtRsrEvaluatorAsyncPromise >> gtRsrEvaluatorPromise [ ^ gtRsrEvaluatorPromise ] { #category : #accessing } -GtGemStoneSnippetPromise >> gtRsrEvaluatorPromise: anEvaluatorPromise [ +GtRsrEvaluatorAsyncPromise >> gtRsrEvaluatorPromise: anEvaluatorPromise [ gtRsrEvaluatorPromise := anEvaluatorPromise ] { #category : #testing } -GtGemStoneSnippetPromise >> hasEvaluationContext [ +GtRsrEvaluatorAsyncPromise >> hasEvaluationContext [ ^ executionContext notNil ] { #category : #testing } -GtGemStoneSnippetPromise >> hasValidResult [ +GtRsrEvaluatorAsyncPromise >> hasValidResult [ ^ self isFulfilled ] { #category : #initialization } -GtGemStoneSnippetPromise >> initialize [ +GtRsrEvaluatorAsyncPromise >> initialize [ super initialize. value := self. @@ -110,54 +110,54 @@ GtGemStoneSnippetPromise >> initialize [ ] { #category : #actions } -GtGemStoneSnippetPromise >> interruptEvaluation [ +GtRsrEvaluatorAsyncPromise >> interruptEvaluation [ self assert: [ executionContext notNil ]. ^ executionContext interruptAsyncComputation ] { #category : #testing } -GtGemStoneSnippetPromise >> isBroken [ +GtRsrEvaluatorAsyncPromise >> isBroken [ "Report if the receiver is currently broken" ^state == #Broken ] { #category : #testing } -GtGemStoneSnippetPromise >> isForAsyncExecution [ +GtRsrEvaluatorAsyncPromise >> isForAsyncExecution [ ^ true ] { #category : #testing } -GtGemStoneSnippetPromise >> isFulfilled [ +GtRsrEvaluatorAsyncPromise >> isFulfilled [ "Report is the receiver is currently fulfilled" ^state == #Fulfilled ] { #category : #testing } -GtGemStoneSnippetPromise >> isResolved [ +GtRsrEvaluatorAsyncPromise >> isResolved [ "Report if the receiver is currently resolved." ^self isFulfilled or: [self isBroken] ] { #category : #resolving } -GtGemStoneSnippetPromise >> resolveWithEvaluationResult: evaluationResult [ +GtRsrEvaluatorAsyncPromise >> resolveWithEvaluationResult: evaluationResult [ evaluationResult isEvaluationCancelledResult ifTrue: [ self breakWithEvaluationResult: evaluationResult ] ifFalse: [ self fulfillWithEvaluationResult: evaluationResult ] ] { #category : #accessing } -GtGemStoneSnippetPromise >> resolvedValue [ +GtRsrEvaluatorAsyncPromise >> resolvedValue [ self assert: [ value ~~ self ]. ^ value ] { #category : #actions } -GtGemStoneSnippetPromise >> resumeEvaluation [ +GtRsrEvaluatorAsyncPromise >> resumeEvaluation [ | resumedEvaluationResultData | self assert: [ executionContext notNil ]. @@ -170,7 +170,7 @@ GtGemStoneSnippetPromise >> resumeEvaluation [ ] { #category : #private } -GtGemStoneSnippetPromise >> retrieveEvaluationResultFromContext: anEvaluationContext [ +GtRsrEvaluatorAsyncPromise >> retrieveEvaluationResultFromContext: anEvaluationContext [ | rawEvaluationResultData evaluationResult | rawEvaluationResultData := anEvaluationContext wait. @@ -188,12 +188,12 @@ GtGemStoneSnippetPromise >> retrieveEvaluationResultFromContext: anEvaluationCon ] { #category : #actions } -GtGemStoneSnippetPromise >> serializationStrategy: aSerializationStrategy [ +GtRsrEvaluatorAsyncPromise >> serializationStrategy: aSerializationStrategy [ serializationStrategy := aSerializationStrategy ] { #category : #accessing } -GtGemStoneSnippetPromise >> sessionDescription [ +GtRsrEvaluatorAsyncPromise >> sessionDescription [ ^ gemStoneSession ifNil: [ ''] ifNotNil: [ :aSession | @@ -201,14 +201,14 @@ GtGemStoneSnippetPromise >> sessionDescription [ ] { #category : #actions } -GtGemStoneSnippetPromise >> stopEvaluation [ +GtRsrEvaluatorAsyncPromise >> stopEvaluation [ self assert: [ executionContext notNil ]. ^ executionContext terminateAsyncComputation ] { #category : #accessing } -GtGemStoneSnippetPromise >> value [ +GtRsrEvaluatorAsyncPromise >> value [ value == self ifTrue: [ mutex critical: [ self wait ] ]. @@ -216,7 +216,7 @@ GtGemStoneSnippetPromise >> value [ ] { #category : #private } -GtGemStoneSnippetPromise >> wait [ +GtRsrEvaluatorAsyncPromise >> wait [ | evaluationResult | executionContext := gtRsrEvaluatorPromise value. diff --git a/src/GToolkit-GemStone-Pharo/GtRsrEvaluatorServiceClient.class.st b/src/GToolkit-GemStone-Pharo/GtRsrEvaluatorServiceClient.class.st index a8572e01..df4e87a1 100644 --- a/src/GToolkit-GemStone-Pharo/GtRsrEvaluatorServiceClient.class.st +++ b/src/GToolkit-GemStone-Pharo/GtRsrEvaluatorServiceClient.class.st @@ -49,7 +49,7 @@ GtRsrEvaluatorServiceClient >> evaluateAsyncScript: aGtRsrScriptEvaluation [ | executionContextPromise | executionContextPromise := self startEvaluateAsyncScript: aGtRsrScriptEvaluation. - ^ GtGemStoneSnippetPromise new + ^ GtRsrEvaluatorAsyncPromise new gemStoneSession: gtSession; gtRsrEvaluatorPromise: executionContextPromise; serializationStrategy: aGtRsrScriptEvaluation serialisationStrategy