diff options
author | Damien George <damien.p.george@gmail.com> | 2017-06-14 14:43:50 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2017-06-14 14:43:50 +1000 |
commit | e374cfff80c37b96b03d4438e475e405b03e6d61 (patch) | |
tree | d9c71b8cb37d3ce11eecaa4bbee81923d66e955e /py/modthread.c | |
parent | a47b8711316a4901bc81e1c46ce50de00207c47f (diff) | |
download | micropython-e374cfff80c37b96b03d4438e475e405b03e6d61.tar.gz micropython-e374cfff80c37b96b03d4438e475e405b03e6d61.zip |
py/modthread: Raise RuntimeError in release() if lock is not acquired.
Diffstat (limited to 'py/modthread.c')
-rw-r--r-- | py/modthread.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/py/modthread.c b/py/modthread.c index d0e71dad3b..1d76027893 100644 --- a/py/modthread.c +++ b/py/modthread.c @@ -84,7 +84,9 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(thread_lock_acquire_obj, 1, 3, thread STATIC mp_obj_t thread_lock_release(mp_obj_t self_in) { mp_obj_thread_lock_t *self = MP_OBJ_TO_PTR(self_in); - // TODO check if already unlocked + if (!self->locked) { + mp_raise_msg(&mp_type_RuntimeError, NULL); + } self->locked = false; MP_THREAD_GIL_EXIT(); mp_thread_mutex_unlock(&self->mutex); |