py: Implement a simple global interpreter lock.

This makes the VM/runtime thread safe, at the cost of not being able to
run code in parallel.
This commit is contained in:
Damien George
2016-05-26 10:42:53 +00:00
parent 1f54ad2aed
commit 4cec63a9db
6 changed files with 35 additions and 0 deletions

View File

@@ -38,6 +38,14 @@
struct _mp_state_thread_t;
#if MICROPY_PY_THREAD_GIL
#define MP_THREAD_GIL_ENTER() mp_thread_mutex_lock(&MP_STATE_VM(gil_mutex), 1)
#define MP_THREAD_GIL_EXIT() mp_thread_mutex_unlock(&MP_STATE_VM(gil_mutex))
#else
#define MP_THREAD_GIL_ENTER()
#define MP_THREAD_GIL_EXIT()
#endif
struct _mp_state_thread_t *mp_thread_get_state(void);
void mp_thread_set_state(void *state);
void mp_thread_create(void *(*entry)(void*), void *arg, size_t stack_size);