Inheritance diagram for ThreadWithData:
Public Member Functions | |
ThreadWithData (const string &name, int parameter) | |
virtual void | thread_main () |
const string & | get_name () const |
Returns the name of the thread. | |
bool | start (ThreadPriority priority, bool global, bool joinable) |
Starts the thread executing. | |
void | join () |
Blocks the calling process until the thread terminates. | |
virtual void | output (ostream &out) const |
virtual TypeHandle | get_type () const |
virtual TypeHandle | force_init_type () |
int | get_type_index () const |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. | |
int | get_ref_count () const |
Returns the current reference count. | |
int | ref () const |
Explicitly increments the reference count. | |
int | unref () const |
Explicitly decrements the reference count. | |
void | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. | |
Static Public Member Functions | |
void | prepare_for_exit () |
Should be called by the main thread just before exiting the program, this blocks until any remaining thread cleanup has finished. | |
Thread * | get_current_thread () |
Returns a pointer to the currently-executing Thread object, or NULL if the main thread (or some system thread other than one started from the Panda interface) is currently executing. | |
bool | is_threading_supported () |
Returns true if a real threading library is available that supports threads, or false if no threading library is available (and Thread::start() will always fail). | |
void | sleep (double seconds) |
Suspends the current thread for at least the indicated amount of time. | |
TypeHandle | get_class_type () |
void | init_type () |
Private Attributes | |
int | _parameter |
|
Definition at line 43 of file test_threaddata.cxx. References _parameter, cout_mutex, and Thread::get_name(). |
|
|
Reimplemented from TypedReferenceCount. |
|
Returns a pointer to the currently-executing Thread object, or NULL if the main thread (or some system thread other than one started from the Panda interface) is currently executing.
|
|
Returns the name of the thread.
Definition at line 83 of file thread.I. References Thread::_impl, Thread::_started, INLINE, nassertr, and ThreadDummyImpl::start(). Referenced by ThreadWithData(), and Thread::~Thread(). |
|
Returns the current reference count.
Definition at line 183 of file referenceCount.I. Referenced by RenderState::determine_bin_index(), RenderEffects::determine_show_bounds(), FontPool::ns_garbage_collect(), TexturePool::ns_garbage_collect(), MaterialPool::ns_get_material(), and TexturePool::ns_release_texture(). |
|
|
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. This is equivalent to get_type().get_index(). Definition at line 71 of file typedObject.I. References TypeHandle::get_name(), TypedObject::get_type(), and INLINE. |
|
Reimplemented from TypedReferenceCount. |
|
Returns true if the current object is the indicated type exactly.
Definition at line 101 of file typedObject.I. Referenced by PT(), and CollisionNode::xform(). |
|
|
Returns true if a real threading library is available that supports threads, or false if no threading library is available (and Thread::start() will always fail).
|
|
Blocks the calling process until the thread terminates. If the thread has already terminated, this returns immediately. Definition at line 155 of file thread.I. References INLINE, and ThreadDummyImpl::sleep(). |
|
Definition at line 45 of file thread.cxx. |
|
Should be called by the main thread just before exiting the program, this blocks until any remaining thread cleanup has finished.
|
|
Explicitly increments the reference count. User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it. The return value is the new reference count. Definition at line 225 of file referenceCount.I. Referenced by ClientDevice::ClientDevice(), EggGroupNode::find_textures(), EggGroupNode::r_apply_texmats(), EggGroupNode::r_flatten_transforms(), and EggGroupNode::reverse_vertex_ordering(). |
|
Suspends the current thread for at least the indicated amount of time. It might be suspended for longer. |
|
Starts the thread executing. It is only valid to call this once. The thread will begin executing its thread_main() function, and will terminate when thread_main() returns. priority is intended as a hint to the relative importance of this thread, and global should be set true if the thread will perform a lot of blocking I/O, or false otherwise (see the NSPR documentation on global vs. local threads for more on this). Both of these parameters may be ignored by the thread implementation. joinable should be set true if you intend to call join() to wait for the thread to terminate, or false if you don't care and you will never call join(). The return value is true if the thread is successfully started, false otherwise. Definition at line 136 of file thread.I. References INLINE, and ThreadDummyImpl::is_threading_supported(). |
|
Does some easy checks to make sure that the reference count isn't completely bogus.
Definition at line 328 of file referenceCount.I. References INLINE. Referenced by EggNode::determine_bin(), and ReferenceCount::~ReferenceCount(). |
|
Implements Thread. Definition at line 53 of file test_threaddata.cxx. |
|
Explicitly decrements the reference count. Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete(). User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it. The return value is the new reference count. Definition at line 293 of file referenceCount.I. References INLINE. Referenced by RenderState::determine_bin_index(), and RenderEffects::determine_show_bounds(). |
|
Definition at line 38 of file test_threaddata.cxx. Referenced by ThreadWithData(). |