this repo has no description
at trunk 79 lines 2.1 kB view raw
1// Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com) 2#include <pthread.h> 3 4#include "cpython-data.h" 5#include "cpython-func.h" 6#include "cpython-types.h" 7 8#include "globals.h" 9#include "mutex.h" 10#include "pythread.h" 11#include "utils.h" 12 13namespace py { 14 15PY_EXPORT PyObject* PyThread_GetInfo() { UNIMPLEMENTED("PyThread_GetInfo"); } 16 17PY_EXPORT void PyThread_ReInitTLS() { UNIMPLEMENTED("PyThread_ReInitTLS"); } 18 19PY_EXPORT int PyThread_acquire_lock(PyThread_type_lock lock, int waitflag) { 20 DCHECK(waitflag == WAIT_LOCK || waitflag == NOWAIT_LOCK, 21 "waitflag should either be WAIT_LOCK or NOWAIT_LOCK"); 22 if (waitflag == WAIT_LOCK) { 23 static_cast<Mutex*>(lock)->lock(); 24 return PY_LOCK_ACQUIRED; 25 } 26 return static_cast<Mutex*>(lock)->tryLock(); 27} 28 29PY_EXPORT PyThread_type_lock PyThread_allocate_lock() { 30 return static_cast<void*>(new Mutex()); 31} 32 33PY_EXPORT int PyThread_create_key() { UNIMPLEMENTED("PyThread_create_key"); } 34 35PY_EXPORT void PyThread_delete_key(int) { 36 UNIMPLEMENTED("PyThread_delete_key"); 37} 38 39PY_EXPORT void PyThread_delete_key_value(int) { 40 UNIMPLEMENTED("PyThread_delete_key_value"); 41} 42 43PY_EXPORT void PyThread_exit_thread() { UNIMPLEMENTED("PyThread_exit_thread"); } 44 45PY_EXPORT void PyThread_free_lock(PyThread_type_lock lock) { 46 delete static_cast<Mutex*>(lock); 47} 48 49PY_EXPORT void* PyThread_get_key_value(int) { 50 UNIMPLEMENTED("PyThread_key_value"); 51} 52 53PY_EXPORT size_t PyThread_get_stacksize() { 54 UNIMPLEMENTED("PyThread_get_stacksize"); 55} 56 57PY_EXPORT unsigned long PyThread_get_thread_ident() { 58 return reinterpret_cast<unsigned long>(pthread_self()); 59} 60 61PY_EXPORT void PyThread_init_thread() { UNIMPLEMENTED("PyThread_init_thread"); } 62 63PY_EXPORT void PyThread_release_lock(PyThread_type_lock lock) { 64 static_cast<Mutex*>(lock)->unlock(); 65} 66 67PY_EXPORT int PyThread_set_key_value(int, void*) { 68 UNIMPLEMENTED("PyThread_set_key_value"); 69} 70 71PY_EXPORT int PyThread_set_stacksize(size_t) { 72 UNIMPLEMENTED("PyThread_set_stacksize"); 73} 74 75PY_EXPORT long PyThread_start_new_thread(void (*)(void*), void*) { 76 UNIMPLEMENTED("PyThread_start_new_thread"); 77} 78 79} // namespace py