diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ac67f49..ec07594f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/src/core/abstract.c b/src/core/abstract.c index e5857daf..55ee0dad 100644 --- a/src/core/abstract.c +++ b/src/core/abstract.c @@ -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 diff --git a/src/include/janet.h b/src/include/janet.h index d8e17351..f65a6a87 100644 --- a/src/include/janet.h +++ b/src/include/janet.h @@ -330,11 +330,16 @@ typedef struct { /* Some extra includes if EV is enabled */ #ifdef JANET_EV #ifdef JANET_WINDOWS -#ifdef JANET_NET -#include -#endif -#include -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 typedef pthread_mutex_t JanetOSMutex;