Re: [Sablevm-developer] Threading support in SableVM
Brought to you by:
egagnon
From: Etienne G. <gag...@uq...> - 2004-02-18 14:56:28
|
Chris Pickett wrote: > (Etienne pls. correct any mistakes ...) Just a clarification: the algorithm was designed to be able to handle situations where the lock owner has changed; the bug was that it didn't handle correctly the case where there was no owner to begin with. > However, I now have another test case (see attached), although I've only > seen this bug manifest itself on a multiprocessor. It might affect > uniprocessors in more complex scenarios. Multi-processor: part of the critical sablevm code for locking does NOT take into account "cache issues". For instance, "xxx.flag" is read and written assuming that any change is visible to other threads without synchronization, which is probably NOT the case on a multiprocessor. So, unless you can actually get your "bug" to manifest itself on a uniprocessor, I wouldn't worry much about it. Now, if you really want to get things running on a multi-processor, you should start investigating cache issues. :-) [WARNING: Not easy. In fact, the Java Memory Model is bronken on multi-processors...] Etienne -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |