Going with Monitor for synchronizing so we can recursive lock w/o exceptions