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.ber...@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 < > santiagobragagn...@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 > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > >