summaryrefslogtreecommitdiff
path: root/ace/Thread.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Thread.h')
-rw-r--r--ace/Thread.h228
1 files changed, 0 insertions, 228 deletions
diff --git a/ace/Thread.h b/ace/Thread.h
deleted file mode 100644
index 8948ebda2c1..00000000000
--- a/ace/Thread.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Thread.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef ACE_THREAD_H
-#define ACE_THREAD_H
-#include "ace/pre.h"
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class ACE_Export ACE_Thread
-{
- // = TITLE
- // Provides a wrapper for threads.
- //
- // = DESCRIPTION
- // This class provides a common interface that is mapped onto
- // POSIX Pthreads, Solaris threads, Win32 threads, VxWorks
- // threads, or pSoS threads. Note, however, that it is
- // generally a better idea to use the <ACE_Thread_Manager>
- // programming API rather than the <ACE_Thread> API since the
- // thread manager is more powerful.
-public:
- static int spawn (ACE_THR_FUNC func,
- void *arg = 0,
- long flags = THR_NEW_LWP | THR_JOINABLE,
- ACE_thread_t *t_id = 0,
- ACE_hthread_t *t_handle = 0,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- void *stack = 0,
- size_t stack_size = 0,
- ACE_Thread_Adapter *thread_adapter = 0);
- // Creates a new thread having <flags> attributes and running <func>
- // with <args> (if <thread_adapter> is non-0 then <func> and <args>
- // are ignored and are obtained from <thread_adapter>). <thr_id>
- // and <t_handle> are set to the thread's ID and handle (?),
- // respectively. The thread runs at <priority> priority (see
- // below).
- //
- // The <flags> are a bitwise-OR of the following:
- // = BEGIN<INDENT>
- // THR_CANCEL_DISABLE, THR_CANCEL_ENABLE, THR_CANCEL_DEFERRED,
- // THR_CANCEL_ASYNCHRONOUS, THR_BOUND, THR_NEW_LWP, THR_DETACHED,
- // THR_SUSPENDED, THR_DAEMON, THR_JOINABLE, THR_SCHED_FIFO,
- // THR_SCHED_RR, THR_SCHED_DEFAULT
- // = END<INDENT>
- //
- // By default, or if <priority> is set to
- // ACE_DEFAULT_THREAD_PRIORITY, an "appropriate" priority value for
- // the given scheduling policy (specified in <flags}>, e.g.,
- // <THR_SCHED_DEFAULT>) is used. This value is calculated
- // dynamically, and is the median value between the minimum and
- // maximum priority values for the given policy. If an explicit
- // value is given, it is used. Note that actual priority values are
- // EXTREMEMLY implementation-dependent, and are probably best
- // avoided.
- //
- // Note that <thread_adapter> is always deleted by <thr_create>,
- // therefore it must be allocated with global operator new.
-
- static int spawn_n (size_t n,
- ACE_THR_FUNC func,
- void *arg = 0,
- long flags = THR_NEW_LWP | THR_JOINABLE,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- void *stack[] = 0,
- size_t stack_size[] = 0,
- ACE_Thread_Adapter *thread_adapter = 0);
- // Spawn N new threads, which execute <func> with argument <arg> (if
- // <thread_adapter> is non-0 then <func> and <args> are ignored and
- // are obtained from <thread_adapter>). If <stack> != 0 it is
- // assumed to be an array of <n> pointers to the base of the stacks
- // to use for the threads being spawned. Likewise, if <stack_size>
- // != 0 it is assumed to be an array of <n> values indicating how
- // big each of the corresponding <stack>s are. Returns the number
- // of threads actually spawned (if this doesn't equal the number
- // requested then something has gone wrong and <errno> will
- // explain...).
- //
- // See also <spawn>.
-
- static int spawn_n (ACE_thread_t thread_ids[],
- size_t n,
- ACE_THR_FUNC func,
- void *arg,
- long flags,
- long priority = ACE_DEFAULT_THREAD_PRIORITY,
- void *stack[] = 0,
- size_t stack_size[] = 0,
- ACE_hthread_t thread_handles[] = 0,
- ACE_Thread_Adapter *thread_adapter = 0);
- // Spawn <n> new threads, which execute <func> with argument <arg>
- // (if <thread_adapter> is non-0 then <func> and <args> are ignored
- // and are obtained from <thread_adapter>). The thread_ids of
- // successfully spawned threads will be placed into the <thread_ids>
- // buffer (which must be the same size as <n>). If <stack> != 0 it
- // is assumed to be an array of <n> pointers to the base of the
- // stacks to use for the threads being spawned. If <stack_size> !=
- // 0 it is assumed to be an array of <n> values indicating how big
- // each of the corresponding <stack>s are. If <thread_handles> != 0
- // it is assumed to be an array of <n> thread_handles that will be
- // assigned the values of the thread handles being spawned. Returns
- // the number of threads actually spawned (if this doesn't equal the
- // number requested then something has gone wrong and <errno> will
- // explain...).
- //
- // See also <spawn>.
-
- static int join (ACE_thread_t,
- ACE_thread_t *,
- void **status = 0);
- // Wait for one or more threads to exit.
-
- static int join (ACE_hthread_t,
- void ** = 0);
- // Wait for one thread to exit.
-
- static int resume (ACE_hthread_t);
- // Continue the execution of a previously suspended thread.
-
- static int suspend (ACE_hthread_t);
- // Suspend the execution of a particular thread.
-
- static int getprio (ACE_hthread_t, int &prio);
- // Get the priority of a particular thread.
-
- static int setprio (ACE_hthread_t, int prio);
- // Set the priority of a particular thread.
-
- static int kill (ACE_thread_t, int signum);
- // Send a signal to the thread.
-
- static void yield (void);
- // Yield the thread to another.
-
- static void self (ACE_hthread_t &t_handle);
- // Return the unique kernel handle of the thread. Note that on
- // Win32 this is actually a pseudohandle, which cannot be shared
- // with other processes or waited on by threads. To locate the real
- // handle, please use the <ACE_Thread_Manager::thr_self> method.
-
- static ACE_thread_t self (void);
- // Return the unique ID of the thread.
-
- static void exit (void *status = 0);
- // Exit the current thread and return "status".
- // Should _not_ be called by main thread.
-
- static int getconcurrency (void);
- // Get the LWP concurrency level of the process.
-
- static int setconcurrency (int new_level);
- // Set the LWP concurrency level of the process.
-
- static int sigsetmask (int how,
- const sigset_t *sigset,
- sigset_t *osigset = 0);
- // Change and/or examine calling thread's signal mask.
-
- static int keycreate (ACE_thread_key_t *keyp,
-#if defined (ACE_HAS_THR_C_DEST)
- ACE_THR_C_DEST destructor,
-#else
- ACE_THR_DEST destructor,
-#endif /* ACE_HAS_THR_C_DEST */
- void * = 0);
- // Allocates a <keyp> that is used to identify data that is specific
- // to each thread in the process. The key is global to all threads
- // in the process.
-
- static int keyfree (ACE_thread_key_t key);
- // Free up the key so that other threads can reuse it.
-
- static int setspecific (ACE_thread_key_t key,
- void *value);
- // Bind value to the thread-specific data key, <key>, for the calling
- // thread.
-
- static int getspecific (ACE_thread_key_t key,
- void **valuep);
- // Stores the current value bound to <key> for the calling thread
- // into the location pointed to by <valuep>.
-
- static int disablecancel (struct cancel_state *old_state);
- // Disable thread cancellation.
-
- static int enablecancel (struct cancel_state *old_state,
- int flag);
- // Enable thread cancellation.
-
- static int setcancelstate (struct cancel_state &new_state,
- struct cancel_state *old_state);
- // Set the cancellation state.
-
- static int cancel (ACE_thread_t t_id);
- // Cancel a thread. Note that this method is only portable on
- // platforms, such as POSIX pthreads, that support thread
- // cancellation.
-
- static void testcancel (void);
- // Test the cancel.
-
-private:
- ACE_Thread (void);
- // Ensure that we don't get instantiated.
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Thread.i"
-#endif /* __ACE_INLINE__ */
-#include "ace/post.h"
-#endif /* ACE_THREAD_H */