On Sun, Feb 22, 2009 at 3:53 PM, Rick McGuire <[email protected]> wrote:

> I've not had a chance to look at this, but there was a serious problem
> with ::attribute methods.  They were not correctly implementing the
> GUARDED attribute, which meant they always unconditionally accessed
> the variable pool regardless of the declared guarded state.  This was
> in terrible violation of the concurrency semantics.  I discovered and
> fixed this about the same time as the startWith code, so this would be
> my prime suspect for the hang problem.  Looking at the test code, both
> the isTicking and endTicking methods do not specify a GUARD attribute,
> so these will block as long as another thread has exclusive access.  I
> think you just need to explicitly specify these as UNGUARDED to get
> this to work again.  Yes, this is a change in behavior, but the old
> behavior was clearly a bug....and a fairly serious one at that.

Rick,

Okay, thanks.

That makes sense.  (Opened my eyes a little too. I'm afraid I haven't
been thinking about attributes when designing concurrent solutions.
Probably because of the bug, things worked for me when they shouldn't
have, and I didn't think about it any further.)

--
Mark Miesfeld

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to