Package vtrace :: Package platforms :: Module base :: Class TracerThread
[hide private]
[frames] | no frames]

Class TracerThread

source code


Ok... so here's the catch... most debug APIs do *not* allow one thread to do the attach and another to do continue and another to do wait... they just dont. So there. I have to make a thread per-tracer (on most platforms) and proxy requests (for *some* trace API methods) to it for actual execution. SUCK!

However, this lets async things like GUIs and threaded things like cobra not have to be aware of which one is allowed and not allowed to make particular calls and on what platforms... YAY!

Instance Methods [hide private]
 
__init__(self)
This constructor should always be called with keyword arguments.
source code
 
run(self)
Run in a circle getting requests from our queue and executing them based on the thread.
source code

Inherited from threading.Thread: __repr__, daemon, getName, ident, isAlive, isDaemon, is_alive, join, name, setDaemon, setName, start

Inherited from threading.Thread (private): _block, _reset_internal_locks, _set_daemon, _set_ident

Inherited from threading._Verbose (private): _note

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self)
(Constructor)

source code 

This constructor should always be called with keyword arguments. Arguments are:

*group* should be None; reserved for future extension when a ThreadGroup class is implemented.

*target* is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.

*name* is the thread name. By default, a unique name is constructed of the form "Thread-N" where N is a small decimal number.

*args* is the argument tuple for the target invocation. Defaults to ().

*kwargs* is a dictionary of keyword arguments for the target invocation. Defaults to {}.

If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.

Overrides: object.__init__
(inherited documentation)

run(self)

source code 

Run in a circle getting requests from our queue and executing them based on the thread.

Overrides: threading.Thread.run