this repo has no description
at trunk 210 lines 3.5 kB view raw
1#!/usr/bin/env python3 2# Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com) 3 4import weakref as _weakref 5from _thread import RLock as _RLock, allocate_lock as _allocate_lock 6 7from _builtins import _Unbound, _unimplemented 8 9 10class Barrier: 11 def __init__(self, *args, **kwargs): 12 _unimplemented() 13 14 15class BoundedSemaphore: 16 def __init__(self, *args, **kwargs): 17 _unimplemented() 18 19 20class BrokenBarrierError(RuntimeError): 21 pass 22 23 24class Condition: 25 def __init__(self, lock=None): 26 if lock is None: 27 lock = RLock() 28 self._lock = lock 29 self.acquire = lock.acquire 30 self.release = lock.release 31 32 def __enter__(self): 33 return self._lock.__enter__() 34 35 def __exit__(self, *args): 36 return self._lock.__exit__(*args) 37 38 def notify(self, n=1): 39 pass 40 41 def notify_all(self): 42 pass 43 44 def wait(self, timeout=None): 45 _unimplemented() 46 47 def wait_for(self, predicate, timeout=None): 48 _unimplemented() 49 50 51class Event: 52 def __init__(self): 53 self._flag = False 54 55 def clear(self): 56 self._flag = False 57 58 def is_set(self): 59 return self._flag 60 61 isSet = is_set 62 63 def set(self): 64 self._flag = True 65 66 def wait(self, timeout=None): 67 signaled = self._flag 68 if not signaled: 69 # Not much of a point waiting for someone to set the flag in a 70 # single-threaded setting, let's abort... 71 _unimplemented() 72 return signaled 73 74 75Lock = _allocate_lock 76 77 78def RLock(*args, **kwargs): 79 return _RLock() 80 81 82class Semaphore: 83 def __init__(self, *args, **kwargs): 84 # TODO(T76412433): Implement Semaphores 85 pass 86 87 88class Thread: 89 def __init__(self, *args, **kwargs): 90 if args == ("_main_thread_secret",): 91 _dangling.add(self) 92 return 93 _unimplemented() 94 95 def _bootstrap(self): 96 _unimplemented() 97 98 @property 99 def daemon(self): 100 return False 101 102 @daemon.setter 103 def daemon(self, daemonic): 104 _unimplemented() 105 106 def getName(self): 107 return self.name 108 109 @property 110 def ident(self): 111 return 1 112 113 def isDaemon(self): 114 return self.daemon 115 116 @property 117 def name(self): 118 return "MainThread" 119 120 @name.setter 121 def name(self, name): 122 _unimplemented() 123 124 def run(self): 125 _unimplemented() 126 127 def setDaemon(self, daemonic): 128 self.daemon = daemonic 129 130 def setName(self, name): 131 self.name = name 132 133 def start(self): 134 _unimplemented() 135 136 def join(self, timeout=None): 137 _unimplemented() 138 139 def is_alive(self): 140 return True 141 142 def isAlive(self): 143 return self.is_alive() 144 145 146class _DummyThread(Thread): 147 pass 148 149 150class _MainThread(Thread): 151 pass 152 153 154class Timer: 155 def __init__(self, *args, **kwargs): 156 _unimplemented() 157 158 159class _ThreadLocal: 160 pass 161 162 163local = _ThreadLocal 164 165 166_dangling = _weakref.WeakSet() 167 168 169_main_thread = _MainThread("_main_thread_secret") 170 171 172_thread_local = _ThreadLocal() 173 174 175def active_count(): 176 return 1 177 178 179activeCount = active_count 180 181 182def current_thread(): 183 return _main_thread 184 185 186currentThread = current_thread 187 188 189def enumerate(): 190 return [_main_thread] 191 192 193def get_ident(): 194 return _main_thread.ident 195 196 197def main_thread(): 198 return _main_thread 199 200 201def setprofile(func): 202 _unimplemented() 203 204 205def settrace(func): 206 _unimplemented() 207 208 209def stack_size(size=_Unbound): 210 _unimplemented()