Jafar's comments are correct. I will add that the rationale for dereferencing
is: you have to dereference things that might not be there later on when you
come back to use it. When you say "return x" in regular Icon, if x is a local
it must be dereferenced. Variable() must follow similar rules. But we might
figure out a workaround.
Sent from my iPhone
On Jun 29, 2011, at 2:20 PM, Jafar Al-Gharaibeh <to.ja...@gmail.com> wrote:
> On Wed, Jun 29, 2011 at 10:50 AM, Steve Wampler <swamp...@noao.edu> wrote:
> On 06/29/2011 10:43 AM, Steve Wampler wrote:
> > On 06/29/2011 10:03 AM, David Gamey wrote:
> >> Folks,
> >>
> >> I recall this may have been reported a while back.
> >
> > I just took a quick look at the source for variable()
> > (runtime/fmisc.r) and it looks as though a dereference
> > of the variable is forced for local and static variables
> > (possibly except when using multithreaded Unicon and
> > the correct value of the 4th argument is passed in).
>
> A closer reading of the code makes me think that the
> deference is forced on locals and statics only when
> using multithreaded Unicon - variable() probably works fine
> without multithreading.
>
> Is the dereference somehow required for thread-safety?
>
> A quick look at the code was not enough for me to identify the problem.
> However, I would like to point out that the term "MultiThread" in Unicon's
> source code predate Concurrent Unicon and it actually refers to multi-loaded
> non-concurrent programs which was introduced at first for program monitoring
> and visualization. A thread in that sense is another loaded program. After
> introducing "real" concurrent threads the term Concurrent was used in the
> source code to refer to them largely because MultiThread was already reserved
> to denote a different thing.
>
> This will continue to be confusing a little bit for anyone who takes a quick
> look at the code. I mentioned all of this just to say that the problem should
> have nothing to do with a thread-safety issue, but for sure it has do to do
> with code-memory reorganization after the introduction of concurrent threads.
> Variable() probably is not "looking" in the right place.
>
> Well, just another thing that we have to fix. :)
>
> Cheers,
> Jafar
>
>
>
>
> --
> Steve Wampler -- swamp...@noao.edu
> The gods that smiled on your birth are now laughing out loud.
>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2
> _______________________________________________
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
>
>
>
> --
> "Let there be no compulsion in religion: Truth stands out clear from error"
> [The Holy Qur'an 2:256]
>
> "Injustice anywhere is a threat to justice everywhere" Dr. King
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2
> _______________________________________________
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group