Refactor Thread class

Associate platform OS thread to the Thread class instead of
creating it from ThreadsManager.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2012-03-24 20:10:13 +01:00
parent f01b53c374
commit 553655eb07
6 changed files with 82 additions and 83 deletions

View File

@@ -66,6 +66,9 @@ struct SplitPoint {
struct Thread {
Thread(int id);
~Thread();
void wake_up();
bool cutoff_occurred() const;
bool is_available_to(int master) const;
@@ -100,7 +103,7 @@ class ThreadsManager {
static storage duration are automatically set to zero before enter main()
*/
public:
Thread& operator[](int threadID) { return threads[threadID]; }
Thread& operator[](int threadID) { return *threads[threadID]; }
void init();
void exit();
@@ -123,7 +126,8 @@ public:
private:
friend struct Thread;
Thread threads[MAX_THREADS + 1]; // Last one is used as a timer
Thread* timer;
Thread* threads[MAX_THREADS];
Lock splitLock;
WaitCondition sleepCond;
Depth minimumSplitDepth;