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.