critical section not released on failure to create emulated socketpair
Description
On Windows, a Win32 Event is used as a system wide critical section during creation of a emulated socketpair. If the socketpair creation fails due to resource exhaustion (for example), an assertion aborts the program, leaving the Win32 Event unreleased.
Once this happens, the only workaround is to close all programs using ZeroMQ. Once all references to the Event are removed, the Windows OS will delete the Event.
Environment
Windows
Activity
Show:
PieterP May 18, 2013 at 6:15 AM
Fixed by commit 8c71ac47e83dc4ae116ab4abb5e4a76e8249d888, and backported to 3.2 stable.
On Windows, a Win32 Event is used as a system wide critical section during creation of a emulated socketpair. If the socketpair creation fails due to resource exhaustion (for example), an assertion aborts the program, leaving the Win32 Event unreleased.
Once this happens, the only workaround is to close all programs using ZeroMQ. Once all references to the Event are removed, the Windows OS will delete the Event.