Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | SI-8131 fixes residual race condition in runtime reflection | Eugene Burmako | 2014-01-21 | 1 | -32/+0 |
| | | | | | | | | | | | | | | Apparently some completers can call setInfo while they’re not yet done, which resets the LOCKED flag, and makes anything that uses LOCKED to track completion unreliable. Unfortunately, that’s exactly the mechanism that was used by runtime reflection to elide locking for symbols that are known to be initialized. This commit fixes the problematic lock elision strategy by introducing an explicit communication channel between SynchronizedSymbol’s and their completers. Now instead of trying hard to infer whether it’s already initialized or not, every symbol gets a volatile field that can be queried to provide necessary information. | ||||
* | removes non-determinism in reflection-sync-potpourri | Eugene Burmako | 2014-01-21 | 1 | -1/+1 |
| | | | | | | | | Depending on the environment in which the test is run, s1 can be either “String” or “java.lang.String”. This is one of the known non-deterministic behaviors of our reflection, caused by prefix stripping only working for packages defined in the root mirror. Until we fix this, I suggest we make the test more lenient. | ||||
* | SI-8131 Move test for reflection thread safety to pending. | Jason Zaugg | 2014-01-10 | 1 | -0/+32 |
Examples noted in SI-8131 show that race conditions still abound. This has been noted twice during pull request validation. |