Public API (GC_deinit) to allow Win32 critical sections deletion
Public GC_deinit allows the clients to avoid a leak of two critical
sections on GC shutdown.
* include/gc.h (GC_deinit): New public function declaration.
* include/private/gc_priv.h [MSWIN32 || MSWINCE] (GC_deinit): Remove.
* misc.c (GC_deinit): Make it public; define it unconditionally; call
DeleteCriticalSection(GC_allocate_ml) if GC_is_initialized; set
GC_is_initialized to false.
DeleteCriticalSection(GC_allocate_ml)
* tests/test.c [!GC_WIN32_THREADS && !GC_PTHREADS && CPPCHECK] (main):
Add UNTESTED(GC_deinit).
* win32_threads.c [GC_WINMAIN_REDIRECT && MSWINCE] (WinMain): Do not
call DeleteCriticalSection(GC_allocate_ml).
* win32_threads.c [!GC_NO_THREADS_DISCOVERY && !GC_PTHREADS]
(GC_DllMain): Likewise.