Details
-
Type:
Sub-task
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: Runtime: Threads and Concurrency
-
Labels:None
-
Number of attachments :
Description
TimerThread doesn't use as much locking as it should: it gets a thread from a list, without locking, and then proceeds to set some fields on it. That "works" except that the TimerThread doesn't stop for GC, so it's possible that a GC occurs in between it getting the thread and setting the field.
The simplest solution is to use more locking (acctLock would work), but there are probably other, better, ways.
Fixed in r15411