A generic thread type that allows calling a C-style thread function without having to subclass. More...
#include "genericThread.h"
Public Types | |
typedef void | ThreadFunc(void *user_data) |
Public Member Functions | |
GenericThread (const std::string &name, const std::string &sync_name) | |
GenericThread (const std::string &name, const std::string &sync_name, ThreadFunc *function, void *user_data) | |
virtual TypeHandle | force_init_type () |
ThreadFunc * | get_function () const |
Returns the function that is called when the thread runs. More... | |
virtual TypeHandle | get_type () const |
void * | get_user_data () const |
Returns the void pointer that is passed to the thread function. More... | |
void | set_function (ThreadFunc *function) |
Replaces the function that is called when the thread runs. More... | |
void | set_user_data (void *user_data) |
Replaces the void pointer that is passed to the thread function. More... | |
Public Member Functions inherited from Thread | |
TypedReferenceCount * | get_current_task () const |
int | get_pipeline_stage () const |
PStatsCallback * | get_pstats_callback () const |
Returns the PStats callback associated with this thread, or NULL if no callback has yet been associated with this thread. More... | |
int | get_pstats_index () const |
int | get_python_index () const |
std::string | get_unique_id () const |
bool | is_joinable () const |
bool | is_started () const |
void | join () |
Blocks the calling process until the thread terminates. More... | |
virtual void | output (std::ostream &out) const |
void | output_blocker (std::ostream &out) const |
Writes a description of the mutex or condition variable that this thread is blocked on. More... | |
void | preempt () |
Indicates that this thread should run as soon as possible, preemptying any other threads that may be scheduled to run. More... | |
void | set_min_pipeline_stage (int min_pipeline_stage) |
Sets this thread's pipeline stage number to at least the indicated value, unless it is already larger. More... | |
void | set_pipeline_stage (int pipeline_stage) |
void | set_pstats_callback (PStatsCallback *pstats_callback) |
Stores a PStats callback to be associated with this thread. More... | |
void | set_pstats_index (int pstats_index) |
Stores a PStats index to be associated with this thread. More... | |
void | set_python_index (int index) |
Stores a Python index to be associated with this thread. More... | |
bool | start (ThreadPriority priority, bool joinable) |
Starts the thread executing. More... | |
Public Member Functions inherited from TypedReferenceCount | |
TypedReferenceCount (const TypedReferenceCount ©) | |
void | operator= (const TypedReferenceCount ©) |
Public Member Functions inherited from TypedObject | |
TypedObject (const TypedObject ©)=default | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
int | get_best_parent_from_Set (const std::set< int > &) const |
int | get_type_index () const |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More... | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. More... | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. More... | |
TypedObject & | operator= (const TypedObject ©)=default |
Public Member Functions inherited from ReferenceCount | |
int | get_ref_count () const |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | ref_if_nonzero () const |
Atomically increases the reference count of this object if it is not zero. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
WeakReferenceList * | weak_ref () |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref () |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Public Member Functions inherited from Namable | |
Namable (const std::string &initial_name="") | |
void | clear_name () |
Resets the Namable's name to empty. More... | |
const std::string & | get_name () const |
bool | has_name () const |
Returns true if the Namable has a nonempty name set, false if the name is empty. More... | |
void | output (std::ostream &out) const |
Outputs the Namable. More... | |
void | set_name (const std::string &name) |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from Thread | |
static void | consider_yield () |
Possibly suspends the current thread for the rest of the current epoch, if it has run for enough this epoch. More... | |
static void | force_yield () |
Suspends the current thread for the rest of the current epoch. More... | |
static TypeHandle | get_class_type () |
static int | get_current_pipeline_stage () |
static Thread * | get_current_thread () |
static Thread * | get_external_thread () |
static Thread * | get_main_thread () |
static void | init_type () |
static bool | is_simple_threads () |
static bool | is_threading_supported () |
static bool | is_true_threads () |
static 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. More... | |
static void | sleep (double seconds) |
Suspends the current thread for at least the indicated amount of time. More... | |
static void | write_status (std::ostream &out) |
Static Public Member Functions inherited from TypedReferenceCount | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from TypedObject | |
static TypeHandle | get_class_type () |
static void | init_type () |
This function is declared non-inline to work around a compiler bug in g++ 2.96. More... | |
Static Public Member Functions inherited from ReferenceCount | |
static TypeHandle | get_class_type () |
static void | init_type () |
Static Public Member Functions inherited from Namable | |
static TypeHandle | get_class_type () |
static void | init_type () |
Additional Inherited Members | |
Public Attributes inherited from Thread | |
get_current_pipeline_stage | |
Returns the integer pipeline stage associated with the current thread. More... | |
get_current_task | |
Returns the task currently executing on this thread (via the AsyncTaskManager), if any, or NULL if the thread is not currently servicing a task. More... | |
get_current_thread | |
Returns a pointer to the currently-executing Thread object. More... | |
get_external_thread | |
Returns a pointer to the "external" Thread object–this is a special Thread object that corresponds to any thread spawned outside of Panda's threading interface. More... | |
get_main_thread | |
Returns a pointer to the "main" Thread object–this is the Thread that started the whole process. More... | |
get_pipeline_stage | |
Returns the Pipeline stage number associated with this thread. More... | |
get_pstats_index | |
Returns the PStats index associated with this thread, or -1 if no index has yet been associated with this thread. More... | |
get_python_index | |
Returns the Python index associated with this thread, or -1 if no index has yet been associated with this thread. More... | |
get_sync_name | |
Returns the sync name of the thread. More... | |
get_unique_id | |
Returns a string that is guaranteed to be unique to this thread, across all processes on the machine, during at least the lifetime of this process. More... | |
is_joinable | |
Returns the value of joinable that was passed to the start() call. More... | |
is_simple_threads | |
Returns true if Panda is currently compiled for "simple threads", which is to say, cooperative context switching only, reducing the need for quite so many critical section protections. More... | |
is_started | |
Returns true if the thread has been started, false if it has not, or if join() has already been called. More... | |
is_threading_supported | |
Returns true if threading support has been compiled in and enabled, or false if no threading is available (and Thread::start() will always fail). More... | |
is_true_threads | |
Returns true if a real threading library is available that supports actual OS-implemented threads, or false if the only threading we can provide is simulated user-space threading. More... | |
set_pipeline_stage | |
Specifies the Pipeline stage number associated with this thread. More... | |
Public Attributes inherited from TypedObject | |
get_type | |
Public Attributes inherited from ReferenceCount | |
get_ref_count | |
Returns the current reference count. More... | |
Public Attributes inherited from Namable | |
get_name | |
set_name | |
A generic thread type that allows calling a C-style thread function without having to subclass.
Definition at line 24 of file genericThread.h.
|
inline |
Returns the function that is called when the thread runs.
Definition at line 26 of file genericThread.I.
|
inline |
Returns the void pointer that is passed to the thread function.
Definition at line 43 of file genericThread.I.
|
inline |
Replaces the function that is called when the thread runs.
Definition at line 18 of file genericThread.I.
|
inline |
Replaces the void pointer that is passed to the thread function.
This is any arbitrary pointer; the thread object does no processing on it.
Definition at line 35 of file genericThread.I.