mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	Avoid including windows.h in janet.h for JanetOSMutex.
This commit is contained in:
		| @@ -2,6 +2,8 @@ | ||||
| All notable changes to this project will be documented in this file. | ||||
|  | ||||
| ## Unlreleased - ??? | ||||
| - Fix some marshalling bugs. | ||||
| - Add optional Makefile target to install jpm as well. | ||||
| - Supervisor channels in threads will no longer include a wastful copy of the fiber in every | ||||
|   message across a thread. | ||||
| - Allow passing a closure to `ev/thead` as well as a whole fiber. | ||||
|   | ||||
| @@ -94,19 +94,19 @@ static int32_t janet_decref(JanetAbstractHead *ab) { | ||||
| } | ||||
|  | ||||
| void janet_os_mutex_init(JanetOSMutex *mutex) { | ||||
|     InitializeCriticalSection(mutex); | ||||
|     InitializeCriticalSection((CRITICAL_SECTION *) mutex); | ||||
| } | ||||
|  | ||||
| void janet_os_mutex_deinit(JanetOSMutex *mutex) { | ||||
|     DeleteCriticalSection(mutex); | ||||
|     DeleteCriticalSection((CRITICAL_SECTION *) mutex); | ||||
| } | ||||
|  | ||||
| void janet_os_mutex_lock(JanetOSMutex *mutex) { | ||||
|     EnterCriticalSection(mutex); | ||||
|     EnterCriticalSection((CRITICAL_SECTION *) mutex); | ||||
| } | ||||
|  | ||||
| void janet_os_mutex_unlock(JanetOSMutex *mutex) { | ||||
|     LeaveCriticalSection(mutex); | ||||
|     LeaveCriticalSection((CRITICAL_SECTION *) mutex); | ||||
| } | ||||
|  | ||||
| #else | ||||
|   | ||||
| @@ -330,11 +330,16 @@ typedef struct { | ||||
| /* Some extra includes if EV is enabled */ | ||||
| #ifdef JANET_EV | ||||
| #ifdef JANET_WINDOWS | ||||
| #ifdef JANET_NET | ||||
| #include <winsock2.h> | ||||
| #endif | ||||
| #include <windows.h> | ||||
| typedef CRITICAL_SECTION JanetOSMutex; | ||||
| typedef struct JanetDudCriticalSection { | ||||
|     /* Avoid including windows.h here - instead, create a structure of the same size */ | ||||
|     /* Needs to be same size as crtical section see WinNT.h for CRITCIAL_SECTION definition */ | ||||
|     void *debug_info; | ||||
|     long lock_count | ||||
|     long recursion_count; | ||||
|     void *owning_thread; | ||||
|     void *lock_semaphore; | ||||
|     unsigned long spin_count; | ||||
| } JanetOSMutex; | ||||
| #else | ||||
| #include <pthread.h> | ||||
| typedef pthread_mutex_t JanetOSMutex; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Calvin Rose
					Calvin Rose