this repo has no description
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