17class ThreadScheduler :
public Scheduler {
19 ThreadScheduler(Int threads, String outMeasurementFile,
20 Bool useConditionVariable);
21 virtual ~ThreadScheduler();
23 void step(Real time, Int timeStepCount);
27 void finishSchedule(
const Edges &inEdges);
28 void scheduleTask(
int thread, CPS::Task::Ptr task);
33 void doStep(Int scheduleIdx);
34 static void threadFunction(ThreadScheduler *sched, Int idx);
36 String mOutMeasurementFile;
39 std::vector<std::thread> mThreads;
41 std::vector<CPS::Task::List> mTempSchedules;
42 struct ScheduleEntry {
45 std::vector<Counter *> reqCounters;
47 std::vector<ScheduleEntry *> mSchedules;
49 Bool mJoining =
false;
51 Int mTimeStepCount = 0;