btw, with the default plan configuration, it will spawn a thread per
independent block (associated by & ), it will rely on the Result mechanism
(the sync on demand) to spawn a third thread that is the one that converges
both results, and executes the last block with the two previous executions.




2014-06-23 10:00 GMT+02:00 Santiago Bragagnolo <[email protected]
>:

>
> Ok, i was thinking more for use the same async handler for all the
> futures, now i read better the handler, for that kind of thing we have
> something similar,what is PlanIT, you should be able to do something like
>
> (TKTPlan plan => ( [ 1+1 ] & [ 2+2 ])  => [ : fst :snd | fst + snd ]) run
> == 6.
>
> PlanIT is not yet documented and is not fully developed, but it has some
> nice tests that shows some of the powers
>
>
>
>
> 2014-06-23 9:07 GMT+02:00 Norbert Hartl <[email protected]>:
>
>> 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 <
>> [email protected]>:
>>
>>
>> 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