>>>>> "SWM" == Steven W McDougall <[EMAIL PROTECTED]> writes:

>> Not unless it is so declared my $a :shared.

SWM> Sure it is.
SWM> Here are some more examples.

SWM> Example 1: Passing a reference to a block-scoped lexical into a thread.

Depends on how locking/threading is designed. There is a fundemental issue
on how values are passed between threads. Does the value leave one thread
and enter the other or are they shared.

The idea tossed around -internals was that a value that crosses a thread
boundary would have a wrapper/proxy attached to handle the mediation.

The mediation would be activated only if the value is passed via a
shared variable. In your case the shared variable is the argument
being passed through the thread creation call.


SWM> Example 2: Declaring one subroutine within the scope of another

If we don't require a :shared on variable anything and everything
has to have protection. If you want the variable to be shared
declare it.


SWM> Example 3: Closures (Ken's example)

Aha, I get it. -internals has been assuming that one _must_ specify
the sharing. You want it to be infered.

I think that's asking for too much DWIMery.

<chaim>
-- 
Chaim Frenkel                                        Nonlinear Knowledge, Inc.
[EMAIL PROTECTED]                                               +1-718-236-0183

Reply via email to