This technique can be generalized such that the thread doesn't start until
all arguments are ready, and arguments do not have to be ready or passed at
thread creation time as follows:

   thread worker(<<@, <<@, <<@....)

 and worker() would be defined as

   procedure worker(arg1, arg2, arg3,...., argn)

arg1...argn don't even have to come from one one place or even one thread.
The thread/function is created in a suspended state, while the arguments
trickle in "slowly" from different points/times.

Cheers,
Jafar


On Mon, Feb 22, 2016 at 3:40 PM, Jafar Al-Gharaibeh <[email protected]>
wrote:

> I should also add, that Don didn't stop there, he  used the <<@ not only
> to stop the thread at the beginning but also to pass a parameter to
> worker() in a "conventional" way. This is how worker() is declared:
>
>   procedure worker(MyId){
>      ....
>
> When <<@ is evaluated and something shows up in the queue, the result is
> passed down to "MyId" which makes passing the parameter (form worker()'s
> perspective) looks as a regular function call.
>
> That is double cool!
>
> --Jafar
>
>
>
> On Mon, Feb 22, 2016 at 3:25 PM, Steve Wampler <[email protected]> wrote:
>
>> On 02/22/2016 12:56 PM, Jafar Al-Gharaibeh wrote:
>> > Greetings,
>> >
>> > A while back, Don Ward shared a threaded application with me written in
>> Unicon. I examined the source code today and
>> > came across a very elegant use of some of the features. Here is the
>> line the impressed me the most:
>> >
>> > while 0 <= (n-:= 1) do { put(Workforce, id := ( thread worker(<<@)) );
>> id @>> id }
>> >
>> > specifically:
>> >
>> > thread worker(<<@)
>>
>> That is cool!
>>
>> --
>> Steve Wampler -- [email protected]
>> The gods that smiled on your birth are now laughing out loud.
>>
>>
>> ------------------------------------------------------------------------------
>> Site24x7 APM Insight: Get Deep Visibility into Application Performance
>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
>> Monitor end-to-end web transactions and take corrective actions now
>> Troubleshoot faster and improve end-user experience. Signup Now!
>> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>> _______________________________________________
>> Unicon-group mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/unicon-group
>>
>
>
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Unicon-group mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/unicon-group

Reply via email to