Opened 17 years ago
Last modified 11 years ago
#14 new defect
Concurrency fixes
Reported by: | Owned by: | David Aspinall | |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | 1:pg-eclipse | Keywords: | |
Cc: |
Description
Thread safety in the code needs to be carefully reviewed. Non-deterministic buggy behaviour happens quite often. I'm using this ticket to list places that need work.
Change History (5)
comment:1 Changed 17 years ago by
Component: | documentation → proofgeneral-eclipse |
---|
comment:2 Changed 17 years ago by
Priority: | major → critical |
---|
comment:3 Changed 17 years ago by
FindBugs is recommended for helping locate concurrency problems, including these patterns:
- IS inconsistent synchronisation policy
- MWN mis-matched wait
- Wa wait not in loop
- UW unconditional wait
See #65 for more on FindBugs.
In project properties select "multi-threaded correctness". At the moment we have 25 warnings in this category.
comment:4 Changed 17 years ago by
Milestone: | PG-Eclipse-1.0.6 → PG-Eclipse-1.1.0 |
---|
Note: See
TracTickets for help on using
tickets.
Uses of wait() in the code need to be reviewed. Search for "wait(" or look for notes added in FIXMEs. I've fixed some but not all. Notes:
Solution pattern:
where some other thread sets the condition to true before notify or notifyAll. Only use notify if you can be sure there is no more than one thread waiting on the lock.
For more, see the Java Concurrency Tutorial, including this page: http://java.sun.com/docs/books/tutorial/essential/concurrency/guardmeth.html