Ea, not, but i like that :D.��


2014-06-23 9:07 GMT+02:00 Norbert Hartl <norbert@hartl.name>:
Nice! Can you group promises? Like

( [ 1 + 1 ] shootIt , [ 2 + 2 ] shootIt ) onSuccess: [ :values | (values first + values second ) = 6 ]

?

Norbert

Am 23.06.2014 um 00:39 schrieb Santiago Bragagnolo <santiagobragagnolo@gmail.com>:


Hi all, im glad to announce TaskIT. You may already knew about, after all it's not confidential ;) and it has documentation on-going since some months ago.

Task IT is package that provides a cool way to deal with processes. Even when this version is stable, it still in design and we want to make it consistent and powerfull.

It counts with a chapter in pharo enterprise book and some cool tests.

We have moved the main distribution repo to CAR

http://smalltalkhub.com/#!/~CAR/TaskIT/


The main easy things to do with this revision are:

" closures "
val := [ 2+2 ] shootIt.
val isKindOf: TKTFuture.
val onSuccess: [: rslt | rslt == 4 ] "async"
val value == 4. " sync "

rslt := [ 2+2 ] shootIt asResult.
rslt == 4 "sync on demand"

" objects "

val := 2 paralellize + 2.
val == 4 "sync on demand"


" staying in tune "

val := [ "some task" ] shootIt asStickyReference.

val := nil.
" sticky means that if this future is taken by the GC, it will kill the process"



" looping�� "


val := server paralellize looping serveOnce: anyParameter asStickyReference.

"this will execute in a new process, in a loop, server serveOnce: anyParameter."

You can stop it by doing
val:= nil.

"or using a disgusting magic variable, for that check the samples :). But do not rely on that kind of things, because it will not be supported "



For more advanced and cool usages, check the Doc.


FAQ:

1- Yes, the "sync" on demand is implemented with a proxy and a become.
2- Yes, we are changing the API of the processes that persist in time.

CREDITS
�� All CAR team in general was great inspiration, particularly, Guille Polito full operational commiter and�� of course is always a good idea to discuss with him,�� Nick Papoylias, is also great to discuss with him. Luc, Noury, Jannik: several ideas are discussed with them as well, and they always gave me support.

and from RMOD Esteban Lorenzano, also discussing and proposing.

Thanks all :).


��OTHERS:
If you want to go to the darkside (dark because is not documented yet, but in the case of PoolIT, that it has some doc ) you can also add to your combo:
ActIT: a simple Actor extention for taskit.
ForkIT: an extention that runs blocks in background image (it adds a nice button to the test runner, letting you run all your tests in a background image and installing the results after the execution)
PoolIT: it adds a pool of workers, it consumes tasks and ensure you a limited amount of threads.
PlanIT: a basic and not yet full developed algebra for composing processes.



I encourage you to use it, it is being used in PhaROS since a lot�� of time. And please any bug and enhancements, you can contact us. Since we are working on the next version is a good time to define what features are really needed.


Salut.


Santiago. .