pthread_thread.h 510 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef PTHREAD_THREAD_H
  2. #define PTHREAD_THREAD_H
  3. #include "_thread.h"
  4. #include <pthread.h>
  5. class PthreadThread : public _Thread
  6. {
  7. public:
  8. PthreadThread(ThreadFunc func, void *param);
  9. ~PthreadThread();
  10. void run();
  11. private:
  12. static void *spawnedThreadFunc(void *);
  13. struct FuncData
  14. {
  15. ThreadFunc func;
  16. void *arg;
  17. FuncData(ThreadFunc f, void *a)
  18. : func(f)
  19. , arg(a)
  20. { }
  21. };
  22. FuncData m_data;
  23. pthread_t m_thread;
  24. };
  25. #endif // PTHREAD_THREAD_H