Hi, This sounds very nice!
I am trying to give it a shot, but I encounter a DNU for BlockClosure>>asTask. I have loaded the latest code from all packages, but this method is not defined. Cheers, Doru On Mon, Jun 23, 2014 at 7:32 AM, Santiago Bragagnolo < santiagobragagn...@gmail.com> wrote: > In general terms there are pharo processes. > > val := [2+2] shooitIt. > > val := [2+2] scheduleIt. > > val := [2+2] forkIt. > > > > All of this snippets will give you a future, all will be related with a > pharo process, but each process has different meaning. the firstone is a > common 2+2 block opened in a pharo process. the second one is a block > assigned to one of the by-default two worker pharo processes from the > thread pool. ( in this case the pharo processes do not run directly the > task, but run a process that run tasks. Then, the first one is applied just > there, the second one when is its turn. > > Finally the third one will use osprocess to open the same image (so, by > now, this will work without anyproblem if you have saved the image just > before, or if you didnt change any of the code to be executed) with the > same vm and it will give the block to be executed. In our local image, > there will be spawned a watch pharo process that will check if the third > image has finished, and deploy the future for it. > > > In the behind the scenes, each of this convenient methods is implemented > with a different kind of runner and process reification. > > > > > > > > > > > > > 2014-06-23 0:54 GMT+02:00 kilon alios <kilon.al...@gmail.com>: > > are those OS processes or Pharo processes ? >> >> >> On Mon, Jun 23, 2014 at 1:39 AM, 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. . >>> >>> >>> >>> >>> >>> >>> >> > -- www.tudorgirba.com "Every thing has its own flow"