Replaced static Object lock used to synchronize accessMemory() with type Lock, allowing a waiting thread to be interrupted while waiting to obtain the lock, avoiding errors when reset is clicked. This also allows the forced release of the lock in the event of an exception.
Added a test for the lock being held by the current thread when reset is clicked and the thread exits the code; if it's held, release it to prevent new threads becoming blocked.
Added statements to unlock the Lock object on accessMemory() in the event execution is cancelled by reset.
Adjusted ir display size on pipelined GUI.
Removed surplus commented code.
Added event listener to FetchDecodeStage rather than keeping it in StandardFetchDecodeStage.