X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=schedule.h;h=c99748c730a4812a303eecf2d30cfc0876a17bd5;hb=34e232a12096c3fce512ec06d921329edf8fcb3a;hp=bae8c1f8e2ce136206d42325dfbba6954e81c7c5;hpb=59aaf50bde2347f826259a1951a5af4bfca060e0;p=model-checker.git diff --git a/schedule.h b/schedule.h index bae8c1f..c99748c 100644 --- a/schedule.h +++ b/schedule.h @@ -1,19 +1,25 @@ #ifndef __SCHEDULE_H__ #define __SCHEDULE_H__ -#include "libthreads.h" -#include "model.h" +#include +#include "mymemory.h" -struct scheduler { - void (*init)(void); - void (*exit)(void); - void (*add_thread)(struct thread *t); - struct thread * (*next_thread)(void); - struct thread * (*get_current_thread)(void); +/* Forward declaration */ +class Thread; - void *priv; -}; +class Scheduler { +public: + Scheduler(); + void add_thread(Thread *t); + void remove_thread(Thread *t); + Thread * next_thread(void); + Thread * get_current_thread(void); + void print(); -void scheduler_init(struct model_checker *mod); + MEMALLOC +private: + std::list > readyList; + Thread *current; +}; #endif /* __SCHEDULE_H__ */