diff options
author | Damien George <damien.p.george@gmail.com> | 2016-04-25 11:33:53 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2016-06-28 11:28:49 +0100 |
commit | 34fc006f5e75f064f3aad9ccc98963dc2fa01e25 (patch) | |
tree | c67384b37216fd3b94cb4c9a5728faff177e845b | |
parent | 801d1b3803e4c8070a8bea6ee4f563a799d010b7 (diff) | |
download | micropython-34fc006f5e75f064f3aad9ccc98963dc2fa01e25.tar.gz micropython-34fc006f5e75f064f3aad9ccc98963dc2fa01e25.zip |
py/modthread: Add with-context capabilities to lock object.
-rw-r--r-- | py/modthread.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/py/modthread.c b/py/modthread.c index 01316f9624..fd5932059e 100644 --- a/py/modthread.c +++ b/py/modthread.c @@ -95,10 +95,17 @@ STATIC mp_obj_t thread_lock_locked(mp_obj_t self_in) { } STATIC MP_DEFINE_CONST_FUN_OBJ_1(thread_lock_locked_obj, thread_lock_locked); +STATIC mp_obj_t thread_lock___exit__(size_t n_args, const mp_obj_t *args) { + return thread_lock_release(args[0]); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(thread_lock___exit___obj, 4, 4, thread_lock___exit__); + STATIC const mp_rom_map_elem_t thread_lock_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_acquire), MP_ROM_PTR(&thread_lock_acquire_obj) }, { MP_ROM_QSTR(MP_QSTR_release), MP_ROM_PTR(&thread_lock_release_obj) }, { MP_ROM_QSTR(MP_QSTR_locked), MP_ROM_PTR(&thread_lock_locked_obj) }, + { MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&thread_lock_acquire_obj) }, + { MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&thread_lock___exit___obj) }, }; STATIC MP_DEFINE_CONST_DICT(thread_lock_locals_dict, thread_lock_locals_dict_table); |