yeah, the name of the extension for executing in a second image is forkit. instead of [ 2+2 ] shootIt, do [ 2+2 ]forkIt,
The difference in between both is the runner.

Meanwhile shootIt is like this:
shootIt
������
������ ^ TKTOneShotRunner new run: self


forkIt is
forkIt
������
������ ^ FKTOneShotAtThirdInstanceRunner new run: self


We are changing this for the next version, but it will be similar, but more dynamic (we will take more advantage of our reification of process)














2014-06-30 0:05 GMT+02:00 Alexandre Bergel <alexandre.bergel@me.com>:
Impressive!

Can I specify the semantic behind #shootIt ? I mean, now you are spawning processes right? Can I instead open a new image to have the work done?

Alexandre

On Jun 22, 2014, at 6:39 PM, Santiago Bragagnolo <santiagobragagnolo@gmail.com> wrote:

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

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel ��http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.