summaryrefslogtreecommitdiff
path: root/libcult/cult/sched/thread.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libcult/cult/sched/thread.hxx')
-rw-r--r--libcult/cult/sched/thread.hxx86
1 files changed, 0 insertions, 86 deletions
diff --git a/libcult/cult/sched/thread.hxx b/libcult/cult/sched/thread.hxx
deleted file mode 100644
index 49d6225..0000000
--- a/libcult/cult/sched/thread.hxx
+++ /dev/null
@@ -1,86 +0,0 @@
-// file : cult/sched/thread.hxx
-// author : Boris Kolpackov <boris@kolpackov.net>
-// copyright : Copyright (c) 2005-2010 Boris Kolpackov
-// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-#ifndef CULT_SCHED_THREAD_HXX
-#define CULT_SCHED_THREAD_HXX
-
-#include <cult/types/fundamental.hxx>
-#include <cult/types/shptr.hxx>
-
-#include <cult/sched/mutex.hxx>
-#include <cult/sched/exception.hxx>
-
-#include <cult/mm/new.hxx>
-
-#include <pthread.h>
-
-namespace Cult
-{
- namespace Sched
- {
- // Instantiating an automatic variable of type Thread results
- // in undefined behavior (read core dump).
- //
- class Thread: public MM::ServiceAwareObject
- {
- public:
- struct Exception: virtual Sched::Exception {};
-
- public:
- virtual
- ~Thread ();
-
- Thread (Void* (*StartRoutine) (Void*), Void* arg = 0);
-
- // Adopt an existing thread. Adoption of a detached thread
- // results in undefined behavior. Adoption of an already
- // adopted thread results in Adopted exception.
- //
-
- struct Adopted: virtual Exception {};
-
- Thread ();
-
- public:
- // Joining an already joined thread results in Joined exception.
- //
-
- struct Joined: virtual Exception {};
-
- //@@ Need to work out the cancelled case.
- //
- Void*
- join ();
-
- Void
- cancel ();
-
- public:
- static Void
- exit (Void* ret);
-
- // self() may not be called in TSD destructors. Call to self() from
- // a foreign thread (i.e., one that is neither native nor adopted)
- // results in Foreign exception.
- //
-
- struct Foreign: virtual Exception {};
-
- static Shptr<Thread>
- self ();
-
- static Void
- test_cancel ();
-
- private:
- pthread_t id_;
-
- Boolean detached_;
- Mutex mutex_;
- };
- }
-}
-
-#endif // CULT_SCHED_THREAD_HXX