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
