A method of managing nested monitor locks in a computer program is
provided for an application having at least a first thread and a second
thread wherein a non-synchronized procedure is processed by the
application. The first thread executes an outer software module while the
second thread executes an inner software module. A processing state of
the second thread code is preserved before the second thread is
configured to release an outer monitor of the outer software module. The
first thread acquires the outer monitor of the outer software module so
that actions may be completed. Upon completion of actions by the first
thread, the outer monitor of the outer software module is released. The
processing state of the second thread is restored, such that, actions of
the second thread are allowed to be completed.