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. .

Reply via email to