summaryrefslogtreecommitdiff
path: root/testing/cffi0/callback_in_thread.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/cffi0/callback_in_thread.py')
-rw-r--r--testing/cffi0/callback_in_thread.py42
1 files changed, 0 insertions, 42 deletions
diff --git a/testing/cffi0/callback_in_thread.py b/testing/cffi0/callback_in_thread.py
deleted file mode 100644
index c98605c..0000000
--- a/testing/cffi0/callback_in_thread.py
+++ /dev/null
@@ -1,42 +0,0 @@
-import sys, time
-sys.path.insert(0, sys.argv[1])
-from cffi import FFI
-
-def _run_callback_in_thread():
- ffi = FFI()
- ffi.cdef("""
- typedef int (*mycallback_func_t)(int, int);
- int threaded_ballback_test(mycallback_func_t mycb);
- """)
- lib = ffi.verify("""
- #include <pthread.h>
- typedef int (*mycallback_func_t)(int, int);
- void *my_wait_function(void *ptr) {
- mycallback_func_t cbfunc = (mycallback_func_t)ptr;
- cbfunc(10, 10);
- cbfunc(12, 15);
- return NULL;
- }
- int threaded_ballback_test(mycallback_func_t mycb) {
- pthread_t thread;
- pthread_create(&thread, NULL, my_wait_function, (void*)mycb);
- return 0;
- }
- """, extra_compile_args=['-pthread'])
- seen = []
- @ffi.callback('int(*)(int,int)')
- def mycallback(x, y):
- time.sleep(0.022)
- seen.append((x, y))
- return 0
- lib.threaded_ballback_test(mycallback)
- count = 300
- while len(seen) != 2:
- time.sleep(0.01)
- count -= 1
- assert count > 0, "timeout"
- assert seen == [(10, 10), (12, 15)]
-
-print('STARTING')
-_run_callback_in_thread()
-print('DONE')