Details
-
Sub-task
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
-
Patch Available
Description
This issue contains improvements of interrupt() implementation on top of H-1789-updated.patch from HARMONY-1789:
0001-removed-interrupter-thread.patch replaces the auxiiliary interrupter thread with direct call to hycond_notify_all(), since this call does not require the monitor to be held
0002-refactored-wait_count-to-be-modified-only-from-wait.patch fixes wait_count handling, which is broken a bit by 0001 patch. IMHO, modifying wait_count outside of threads waiting on the monitor was not correct in the first place.
0003-replaced-HyThread.monitor-with-HyThread.current_condition.patch further simplifies interrupt() implementation by removing special case for a thread waiting on a monitor, since it boils down to waiting on a conditional variable.
Attachments
Attachments
Issue Links
- depends upon
-
HARMONY-1789 [DRLVM] Race condition between Thread.interrupt and Object.wait, Thread.sleep or join
- Resolved