wait_queue.h
上传用户:shtangtang
上传日期:2007-01-04
资源大小:167k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef __THREAD_WAIT_QUEUE_H
  2. #define __THREAD_WAIT_QUEUE_H
  3. #include <thread_spinlock.h>
  4. #include <thread_attributes.h>
  5. #define __THREAD_QUEUE_MAX    64
  6. class wait_queue {
  7. private:
  8.   int w_id;
  9.   attributes::scope w_scope;
  10.   struct storage {
  11.     int w_magic;
  12.     short top,bottom;
  13.     spinlock w_sync;
  14.     int pid[__THREAD_QUEUE_MAX];
  15.   } *_wq;
  16.   void init(attributes::scope);
  17. public:
  18.   wait_queue(int);
  19.   wait_queue(attributes::scope);
  20.   wait_queue();
  21.   ~wait_queue();
  22.   bool empty();
  23.   void insert(int);
  24.   void remove(int);
  25.   void suspend_me();
  26.   void wake_up();
  27. };
  28. #endif /* __THREAD_WAIT_QUEUE_H */