pharo-contributions / taskit

TaskIt is a library that ease Process usage in Pharo. It provides abstractions to execute and synchronize concurrent tasks, and several pre-built mechanisms that are useful for many application developers.
MIT License
43 stars 24 forks source link

TKTExceptionHandler>>handleException: subclassResponsibility #43

Closed JurajKubelka closed 5 years ago

JurajKubelka commented 6 years ago

Hi,

by evaluating:

aFuture := [ 1 / 0 ] future.
aFuture onFailureDo: [ :anException | anException notExisingMethod ]

I receive a exception:

TKTExceptionHandler(Object)>>subclassResponsibility
TKTExceptionHandler>>handleException:
TKTExceptionHandler class>>handleException:
[ :error | self exceptionHandler handleException: error ] in TKTWorkerProcess(TKTAbstractExecutor)>>executeTask: in Block: [ :error | self exceptionHandler handleException: ...etc...
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
ZeroDivide(Object)>>doesNotUnderstand: #notExisingMethod
[ :anException | anException notExisingMethod ] in UndefinedObject>>DoIt in Block: [ :anException | anException notExisingMethod ]
[ each value: aValue ] in [ :each | self scheduleCallbackTask: [ each value: aValue ] ] in TKTFuture>>deployFailure: in Block: [ each value: aValue ]
TKTGenericTask>>value
TKTTaskExecution>>doExecuteTask
TKTReadyTaskState>>performTaskExecution:
TKTTaskExecution>>executeTask
[ self executeTask ] in TKTTaskExecution>>value in Block: [ self executeTask ]
[ activeProcess psValueAt: index put: anObject.
aBlock value ] in TKTConfiguration(DynamicVariable)>>value:during: in Block: [ activeProcess psValueAt: index put: anObject....
BlockClosure>>ensure:
TKTConfiguration(DynamicVariable)>>value:during:
TKTConfiguration class(DynamicVariable class)>>value:during:
TKTConfiguration class>>optionAt:value:during:
TKTConfiguration class>>runner:during:
TKTTaskExecution>>value
[ self noteBusy.
aTaskExecution value.
self noteFree ] in TKTWorkerProcess(TKTAbstractExecutor)>>executeTask: in Block: [ self noteBusy....
BlockClosure>>on:do:
TKTWorkerProcess(TKTAbstractExecutor)>>executeTask:
TKTWorkerProcess>>executeTask:
[ self executeTask: taskQueue next ] in TKTWorkerProcess>>workerLoop in Block: [ self executeTask: taskQueue next ]
BlockClosure>>repeat
TKTWorkerProcess>>workerLoop

Tested on dev-5 branch in Pharo 6.0 Latest update: #60543.

JurajKubelka commented 6 years ago

Hi @sbragagnolo! How are you? Where is the best place to discuss the TaskIt usage? I use it in a project and I have some thoughts in mind that I want to share and discuss. Thank you :-)

sbragagnolo commented 5 years ago

A lot of time happened! I am putting some love to the things i not usually use of task it. i am preparing a v1.0. Yo ushould not have more this issue