exploring shutdown of monitor in failure case
improving synchronization stability
improving error handling and stability for concurrent access