summaryrefslogtreecommitdiffstatshomepage
path: root/py/modthread.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2017-06-14 14:43:50 +1000
committerDamien George <damien.p.george@gmail.com>2017-06-14 14:43:50 +1000
commite374cfff80c37b96b03d4438e475e405b03e6d61 (patch)
treed9c71b8cb37d3ce11eecaa4bbee81923d66e955e /py/modthread.c
parenta47b8711316a4901bc81e1c46ce50de00207c47f (diff)
downloadmicropython-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.c4
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);