diff options
Diffstat (limited to 'tests/thread/thread_lock1.py')
-rw-r--r-- | tests/thread/thread_lock1.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/thread/thread_lock1.py b/tests/thread/thread_lock1.py new file mode 100644 index 0000000000..ca585ffbb9 --- /dev/null +++ b/tests/thread/thread_lock1.py @@ -0,0 +1,40 @@ +# test _thread lock object using a single thread +# +# MIT license; Copyright (c) 2016 Damien P. George on behalf of Pycom Ltd + +import _thread + +# create lock +lock = _thread.allocate_lock() + +print(type(lock) == _thread.LockType) + +# should be unlocked +print(lock.locked()) + +# basic acquire and release +print(lock.acquire()) +print(lock.locked()) +lock.release() +print(lock.locked()) + +# try acquire twice (second should fail) +print(lock.acquire()) +print(lock.locked()) +print(lock.acquire(0)) +print(lock.locked()) +lock.release() +print(lock.locked()) + +# test with capabilities of lock +with lock: + print(lock.locked()) + +# test that lock is unlocked if an error is rasied +try: + with lock: + print(lock.locked()) + raise KeyError +except KeyError: + print('KeyError') + print(lock.locked()) |