Python threading.enumerate() Examples
The following are 30
code examples of threading.enumerate().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
threading
, or try the search function
.
Example #1
Source File: streaming.py From olympe with BSD 3-Clause "New" or "Revised" License | 8 votes |
def run(self): window_name = "Olympe Streaming Example" cv2.namedWindow(window_name, cv2.WINDOW_NORMAL) main_thread = next( filter(lambda t: t.name == "MainThread", threading.enumerate()) ) while main_thread.is_alive(): with self.flush_queue_lock: try: yuv_frame = self.frame_queue.get(timeout=0.01) except queue.Empty: continue try: self.show_yuv_frame(window_name, yuv_frame) except Exception: # We have to continue popping frame from the queue even if # we fail to show one frame traceback.print_exc() finally: # Don't forget to unref the yuv frame. We don't want to # starve the video buffer pool yuv_frame.unref() cv2.destroyWindow(window_name)
Example #2
Source File: plugins.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 7 votes |
def start(self): if self.finalized: self.bus.log('Already deamonized.') # forking has issues with threads: # http://www.opengroup.org/onlinepubs/000095399/functions/fork.html # "The general problem with making fork() work in a multi-threaded # world is what to do with all of the threads..." # So we check for active threads: if threading.activeCount() != 1: self.bus.log('There are %r active threads. ' 'Daemonizing now may cause strange failures.' % threading.enumerate(), level=30) self.daemonize(self.stdin, self.stdout, self.stderr, self.bus.log) self.finalized = True
Example #3
Source File: output.py From stem with GNU Lesser General Public License v3.0 | 7 votes |
def thread_stacktraces(): """ Provides a dump of the stacktrace information for all active threads. :returns: **dict** that maps thread names to their stacktrace """ stacktraces = {} for thread in threading.enumerate(): frame = sys._current_frames().get(thread.ident, None) if frame: stacktraces[thread.name] = ''.join(traceback.format_stack(frame)) else: stacktraces[thread.name] = 'No traceback available' return stacktraces
Example #4
Source File: threads_show_ver.py From pyplus_course with Apache License 2.0 | 6 votes |
def main(): """ Use threads and Netmiko to connect to each of the devices. Execute 'show version' on each device. Record the amount of time required to do this. """ start_time = datetime.now() for a_device in devices: my_thread = threading.Thread(target=show_version, args=(a_device,)) my_thread.start() main_thread = threading.currentThread() for some_thread in threading.enumerate(): if some_thread != main_thread: print(some_thread) some_thread.join() print("\nElapsed time: " + str(datetime.now() - start_time))
Example #5
Source File: exercise2_with_threads.py From python_course with Apache License 2.0 | 6 votes |
def main(): password = getpass() start_time = datetime.now() hostnames = [ 'arista1.twb-tech.com', 'arista2.twb-tech.com', 'arista3.twb-tech.com', 'arista4.twb-tech.com', ] print() print(">>>>>") for host in hostnames: net_device = create_device_dict(host, password) my_thread = threading.Thread(target=scp_file, args=(net_device,)) my_thread.start() main_thread = threading.currentThread() for some_thread in threading.enumerate(): if some_thread != main_thread: some_thread.join() print(">>>>>") print("\nElapsed time: " + str(datetime.now() - start_time))
Example #6
Source File: ex6_threads_show_ver.py From python_course with Apache License 2.0 | 6 votes |
def main(): ''' Use threads and Netmiko to connect to each of the devices in the database. Execute 'show version' on each device. Record the amount of time required to do this. ''' start_time = datetime.now() devices = NetworkDevice.objects.all() for a_device in devices: my_thread = threading.Thread(target=show_version, args=(a_device,)) my_thread.start() main_thread = threading.currentThread() for some_thread in threading.enumerate(): if some_thread != main_thread: print(some_thread) some_thread.join() print("\nElapsed time: " + str(datetime.now() - start_time))
Example #7
Source File: strategy.py From QUANTAXIS with MIT License | 6 votes |
def on_bar(self, event): print(threading.enumerate()) sellavailable = self.sell_available try: for item in event.market_data.code: if sellavailable.get(item, 0) > 0: event.send_order(account_cookie=self.account_cookie, amount=sellavailable[item], amount_model=AMOUNT_MODEL.BY_AMOUNT, time=self.current_time, code=item, price=0, order_model=ORDER_MODEL.MARKET, towards=ORDER_DIRECTION.SELL, market_type=self.market_type, frequence=self.frequence, broker_name=self.broker ) else: event.send_order(account_cookie=self.account_cookie, amount=100, amount_model=AMOUNT_MODEL.BY_AMOUNT, time=self.current_time, code=item, price=0, order_model=ORDER_MODEL.MARKET, towards=ORDER_DIRECTION.BUY, market_type=self.market_type, frequence=self.frequence, broker_name=self.broker) except Exception as e: print(e)
Example #8
Source File: test_bus.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_custom_channels(bus, listener): """Test that custom pub-sub channels work as built-in ones.""" expected = [] custom_listeners = ('hugh', 'louis', 'dewey') for channel in custom_listeners: for index, priority in enumerate([None, 10, 60, 40]): bus.subscribe( channel, listener.get_listener(channel, index), priority, ) for channel in custom_listeners: bus.publish(channel, 'ah so') expected.extend(msg % (i, channel, 'ah so') for i in (1, 3, 0, 2)) bus.publish(channel) expected.extend(msg % (i, channel, None) for i in (1, 3, 0, 2)) assert listener.responses == expected
Example #9
Source File: app.py From datasette with Apache License 2.0 | 6 votes |
def _threads(self): threads = list(threading.enumerate()) d = { "num_threads": len(threads), "threads": [ {"name": t.name, "ident": t.ident, "daemon": t.daemon} for t in threads ], } # Only available in Python 3.7+ if hasattr(asyncio, "all_tasks"): tasks = asyncio.all_tasks() d.update( { "num_tasks": len(tasks), "tasks": [_cleaner_task_str(t) for t in tasks], } ) return d
Example #10
Source File: test_bus.py From cherrypy with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_builtin_channels(bus, listener): """Test that built-in channels trigger corresponding listeners.""" expected = [] for channel in bus.listeners: for index, priority in enumerate([100, 50, 0, 51]): bus.subscribe( channel, listener.get_listener(channel, index), priority, ) for channel in bus.listeners: bus.publish(channel) expected.extend([msg % (i, channel, None) for i in (2, 1, 3, 0)]) bus.publish(channel, arg=79347) expected.extend([msg % (i, channel, 79347) for i in (2, 1, 3, 0)]) assert listener.responses == expected
Example #11
Source File: help_functions.py From pylane with GNU General Public License v3.0 | 6 votes |
def inspect_threads(thread_names=[]): """inspect_threads() -> {thread_name: {"locals": {}, "stack": ""}} : return threads' locals and stack""" import threading import sys import traceback pylane_thread_name = "pylane-shell-thread" stacks = {} frames = sys._current_frames() threads = threading.enumerate() for thread in threads: if thread.name == pylane_thread_name: continue if thread_names and thread.name not in thread_names: continue frame = frames.get(thread.ident) stack = ''.join(traceback.format_stack(frame)) if frame else '' stacks[thread.name] = { "locals": frame.f_locals, "stack": stack } return stacks
Example #12
Source File: cli.py From airflow with Apache License 2.0 | 6 votes |
def sigquit_handler(sig, frame): # pylint: disable=unused-argument """ Helps debug deadlocks by printing stacktraces when this gets a SIGQUIT e.g. kill -s QUIT <PID> or CTRL+\ """ print("Dumping stack traces for all threads in PID {}".format(os.getpid())) id_to_name = {th.ident: th.name for th in threading.enumerate()} code = [] for thread_id, stack in sys._current_frames().items(): # pylint: disable=protected-access code.append("\n# Thread: {}({})" .format(id_to_name.get(thread_id, ""), thread_id)) for filename, line_number, name, line in traceback.extract_stack(stack): code.append('File: "{}", line {}, in {}' .format(filename, line_number, name)) if line: code.append(" {}".format(line.strip())) print("\n".join(code))
Example #13
Source File: solve.py From pyDcop with BSD 3-Clause "New" or "Revised" License | 6 votes |
def on_timeout(): logger.debug("cli timeout ") # Timeout should have been handled by the orchestrator, if the cli timeout # has been reached, something is probably wrong : dump threads. for th in threading.enumerate(): print(th) traceback.print_stack(sys._current_frames()[th.ident]) print() if orchestrator is None: logger.debug("cli timeout with no orchestrator ?") return global timeout_stopped timeout_stopped = True # Stopping agents can be rather long, we need a big timeout ! logger.debug("stop agent on cli timeout ") orchestrator.stop_agents(20) logger.debug("stop orchestrator on cli timeout ") orchestrator.stop() _results("TIMEOUT") # sys.exit(0) os._exit(2)
Example #14
Source File: run.py From pyDcop with BSD 3-Clause "New" or "Revised" License | 6 votes |
def on_timeout(): if orchestrator is None: return # Timeout should have been handled by the orchestrator, if the cli timeout # has been reached, something is probably wrong : dump threads. for th in threading.enumerate(): print(th) traceback.print_stack(sys._current_frames()[th.ident]) print() if orchestrator is None: logger.debug("cli timeout with no orchestrator ?") return global timeout_stopped timeout_stopped = True # Stopping agents can be rather long, we need a big timeout ! orchestrator.stop_agents(20) orchestrator.stop() _results("TIMEOUT") sys.exit(0)
Example #15
Source File: distribute.py From pyDcop with BSD 3-Clause "New" or "Revised" License | 6 votes |
def on_timeout(): global result, output_file global start_t duration = time.time() - start_t print("TIMEOUT when distributing") logger.info("cli timeout when distributing") for th in threading.enumerate(): print(th) traceback.print_stack(sys._current_frames()[th.ident]) result["status"] = "TIMEOUT" result["inputs"]["duration"] = duration if output_file is not None: with open(output_file, encoding="utf-8", mode="w") as fo: fo.write(yaml.dump(result)) print(yaml.dump(result)) #os._exit(0) sys.exit(0)
Example #16
Source File: threads_netmiko.py From pynet with Apache License 2.0 | 6 votes |
def main(): ''' Use threads and Netmiko to connect to each of the devices. Execute 'show version' on each device. Record the amount of time required to do this. ''' start_time = datetime.now() for a_device in devices: my_thread = threading.Thread(target=show_version, args=(a_device,)) my_thread.start() main_thread = threading.currentThread() for some_thread in threading.enumerate(): if some_thread != main_thread: print(some_thread) some_thread.join() print("\nElapsed time: " + str(datetime.now() - start_time))
Example #17
Source File: ex6_threads_show_ver.py From pynet with Apache License 2.0 | 6 votes |
def main(): ''' Use threads and Netmiko to connect to each of the devices in the database. Execute 'show version' on each device. Record the amount of time required to do this. ''' django.setup() start_time = datetime.now() devices = NetworkDevice.objects.all() for a_device in devices: my_thread = threading.Thread(target=show_version, args=(a_device,)) my_thread.start() main_thread = threading.currentThread() for some_thread in threading.enumerate(): if some_thread != main_thread: print some_thread some_thread.join() print "\nElapsed time: " + str(datetime.now() - start_time)
Example #18
Source File: test_threading.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_enumerate_after_join(self): # Try hard to trigger #1703448: a thread is still returned in # threading.enumerate() after it has been join()ed. enum = threading.enumerate old_interval = sys.getcheckinterval() try: for i in xrange(1, 100): # Try a couple times at each thread-switching interval # to get more interleavings. sys.setcheckinterval(i // 5) t = threading.Thread(target=lambda: None) t.start() t.join() l = enum() self.assertNotIn(t, l, "#1703448 triggered after %d trials: %s" % (i, l)) finally: sys.setcheckinterval(old_interval)
Example #19
Source File: test_threading.py From oss-ftp with MIT License | 6 votes |
def test_enumerate_after_join(self): # Try hard to trigger #1703448: a thread is still returned in # threading.enumerate() after it has been join()ed. enum = threading.enumerate old_interval = sys.getcheckinterval() try: for i in xrange(1, 100): # Try a couple times at each thread-switching interval # to get more interleavings. sys.setcheckinterval(i // 5) t = threading.Thread(target=lambda: None) t.start() t.join() l = enum() self.assertNotIn(t, l, "#1703448 triggered after %d trials: %s" % (i, l)) finally: sys.setcheckinterval(old_interval)
Example #20
Source File: test_threading.py From BinderFilter with MIT License | 6 votes |
def test_enumerate_after_join(self): # Try hard to trigger #1703448: a thread is still returned in # threading.enumerate() after it has been join()ed. enum = threading.enumerate old_interval = sys.getcheckinterval() try: for i in xrange(1, 100): # Try a couple times at each thread-switching interval # to get more interleavings. sys.setcheckinterval(i // 5) t = threading.Thread(target=lambda: None) t.start() t.join() l = enum() self.assertNotIn(t, l, "#1703448 triggered after %d trials: %s" % (i, l)) finally: sys.setcheckinterval(old_interval)
Example #21
Source File: test_mailbox.py From strax with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_highlevel(): """Test highlevel mailbox API""" for lazy in [False, True]: print(f"Lazy mode: {lazy}") mb = strax.Mailbox(lazy=lazy) mb.add_sender(iter(list(range(10)))) def test_reader(source): test_reader.got = r = [] for s in source: r.append(s) mb.add_reader(test_reader) mb.start() time.sleep(SHORT_TIMEOUT) assert hasattr(test_reader, 'got') assert test_reader.got == list(range(10)) mb.cleanup() assert len(threading.enumerate()) == 1, "Not all threads died"
Example #22
Source File: gunicorn.conf.py From torngas with BSD 3-Clause "New" or "Revised" License | 6 votes |
def worker_int(worker): worker.log.info("worker received INT or QUIT signal") ## get traceback info import threading, sys, traceback id2name = dict([(th.ident, th.name) for th in threading.enumerate()]) code = [] for threadId, stack in sys._current_frames().items(): code.append("\n# Thread: %s(%d)" % (id2name.get(threadId, ""), threadId)) for filename, lineno, name, line in traceback.extract_stack(stack): code.append('File: "%s", line %d, in %s' % (filename, lineno, name)) if line: code.append(" %s" % (line.strip())) worker.log.debug("\n".join(code))
Example #23
Source File: http.py From CrackMapExec with BSD 2-Clause "Simplified" License | 6 votes |
def shutdown(self): try: while len(self.server.hosts) > 0: self.server.log.info('Waiting on {} host(s)'.format(highlight(len(self.server.hosts)))) sleep(15) except KeyboardInterrupt: pass # shut down the server/socket self.server.shutdown() self.server.socket.close() self.server.server_close() # make sure all the threads are killed for thread in threading.enumerate(): if thread.isAlive(): try: thread._stop() except: pass
Example #24
Source File: orchestrator.py From pyDcop with BSD 3-Clause "New" or "Revised" License | 6 votes |
def on_timeout(): logger.debug("cli timeout ") # Timeout should have been handled by the orchestrator, if the cli timeout # has been reached, something is probably wrong : dump threads. for th in threading.enumerate(): print(th) traceback.print_stack(sys._current_frames()[th.ident]) print() if orchestrator is None: logger.debug("cli timeout with no orchestrator ?") return global timeout_stopped timeout_stopped = True orchestrator.stop_agents(20) orchestrator.stop() _results("TIMEOUT") sys.exit(0)
Example #25
Source File: lock_tests.py From BinderFilter with MIT License | 5 votes |
def test_thread_leak(self): # The lock shouldn't leak a Thread instance when used from a foreign # (non-threading) thread. lock = self.locktype() def f(): lock.acquire() lock.release() n = len(threading.enumerate()) # We run many threads in the hope that existing threads ids won't # be recycled. Bunch(f, 15).wait_for_finished() self.assertEqual(n, len(threading.enumerate()))
Example #26
Source File: ManagedThread.py From ufora with Apache License 2.0 | 5 votes |
def allManagedThreads(): return [t for t in threading.enumerate() if ManagedThread.threadByObjectId(id(t)) is not None]
Example #27
Source File: dump_threads.py From pajbot with MIT License | 5 votes |
def dump_threads(): import threading import traceback for th in threading.enumerate(): print(th) traceback.print_stack(sys._current_frames()[th.ident]) print()
Example #28
Source File: misc.py From pixelworld with MIT License | 5 votes |
def __init__(self, interval, function, args=[], kwargs={}): assert interval == int(interval) assert interval >= 1 self.interval = int(interval) self.function = function self.args = args self.kwargs = kwargs self.timer = None self.running = False self.repeats_left = None self.main_thread = threading.enumerate()[0] if self.main_thread.name != 'MainThread': print("WARNING: thread[0] has name %s not MainThread" % (self.main_thread.name,))
Example #29
Source File: lock_tests.py From oss-ftp with MIT License | 5 votes |
def test_thread_leak(self): # The lock shouldn't leak a Thread instance when used from a foreign # (non-threading) thread. lock = self.locktype() def f(): lock.acquire() lock.release() n = len(threading.enumerate()) # We run many threads in the hope that existing threads ids won't # be recycled. Bunch(f, 15).wait_for_finished() self.assertEqual(n, len(threading.enumerate()))
Example #30
Source File: misc.py From pixelworld with MIT License | 5 votes |
def _bigint_from_bytes(bytes): sizeof_int = 4 padding = sizeof_int - len(bytes) % sizeof_int bytes += b'\0' * padding int_count = int(len(bytes) / sizeof_int) unpacked = struct.unpack("{}I".format(int_count), bytes) accum = 0 for i, val in enumerate(unpacked): accum += 2 ** (sizeof_int * 8 * i) * val return accum