Identifying Potential Deadlocked Instructions in a Multi-threaded ooRexx Program
In dynamic runtime environments, like ooRexx applications, guard-locked multi-threaded applications may be deadlocked for many reasons. Breaking deadlocked code may yield the location of a deadlocked instruction but may not allow for identifying other deadlocked threads such that finding the causes may be difficult or even impossible to locate. With the introduction of collectible TraceObject instances in ooRexx 5.1, a new infrastructure becomes available that can be put to work for identifying guard lock-related deadlocks on any number of threads. This article introduces the principles for creating TraceObject trace logs that can be externalized (e.g., encoded as JSON or XML text files) and internalized later as the originally ordered collection of trace objects for analyzing and processing purposes. The ooRexx guard lock-based multi-threading rules can then be used to develop an algorithm to identify all deadlocked program instructions “post immobilization,” analyzing the TraceObject trace logs and supplying information about the affected objects and threads.
Slides (paper04FlatscherWinkler.pdf) | 327KiB |
Thu 19 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
16:30 - 17:30 | Afternoon talks 2VORTEX at EI 4 Reithoffer Chair(s): Davide Ancona DIBRIS, University of Genova, Italy | ||
16:30 30mTalk | Devising a TraceObject Class for Improved Runtime Monitoring of ooRexx Applications VORTEX File Attached | ||
17:00 30mTalk | Identifying Potential Deadlocked Instructions in a Multi-threaded ooRexx Program VORTEX File Attached |