6. win32win32thread.h
#ifndef DONT_USE_CRITICAL_SECTION
/* Critical Sections used instead of mutexes:
lightweight,
* but can't be communicated to child processes, and
can't get
* HANDLE to it for use elsewhere.
*/
typedef CRITICAL_SECTION perl_mutex;
#define MUTEX_INIT(m) InitializeCriticalSection(m)
#define MUTEX_LOCK(m) EnterCriticalSection(m)
#define MUTEX_UNLOCK(m) LeaveCriticalSection(m)
#define MUTEX_DESTROY(m) DeleteCriticalSection(m)
#else
...