diff options
| author | 2021-08-20 17:57:23 -0500 | |
|---|---|---|
| committer | 2021-08-20 17:57:23 -0500 | |
| commit | c786a4cbeb8b4384111bde2fbe6113a7b2e06998 (patch) | |
| tree | c10bf558390922aed61e3e70f3bc9962492e09c9 /src/include/janet.h | |
| parent | Decrement thread channel pointer during cleanup without adding to heap. (diff) | |
Expose JanetOSMutex to make abstract types easier to write.
Diffstat (limited to 'src/include/janet.h')
| -rw-r--r-- | src/include/janet.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/include/janet.h b/src/include/janet.h index 4027b672..efce9ede 100644 --- a/src/include/janet.h +++ b/src/include/janet.h @@ -317,6 +317,17 @@ typedef struct { #include <stddef.h> #include <stdio.h> +/* Some extra includes if EV is enabled */ +#ifdef JANET_EV +#ifdef JANET_WINDOWS +#include <synchapi.h> +typedef CRTICAL_SECTION JanetOSMutex; +#else +#include <pthread.h> +typedef pthread_mutex_t JanetOSMutex; +#endif +#endif + #ifdef JANET_BSD int _setjmp(jmp_buf); JANET_NO_RETURN void _longjmp(jmp_buf, int); @@ -1354,6 +1365,12 @@ JANET_API void *janet_abstract_threaded(const JanetAbstractType *atype, size_t s JANET_API int32_t janet_abstract_incref(void *abst); JANET_API int32_t janet_abstract_decref(void *abst); +/* Expose some OS sync primitives to make portable abstract types easier to implement */ +JANET_API void janet_os_mutex_init(JanetOSMutex *mutex); +JANET_API void janet_os_mutex_deinit(JanetOSMutex *mutex); +JANET_API void janet_os_mutex_lock(JanetOSMutex *mutex); +JANET_API void janet_os_mutex_unlock(JanetOSMutex *mutex); + /* Get last error from an IO operation */ JANET_API Janet janet_ev_lasterr(void); |
