PaCO++
0.05
|
00001 #include "paco_thread.h" 00002 #include <omnithread.h> 00003 00004 class paco_omni_thread : public paco_thread 00005 { 00006 public: 00007 paco_omni_thread(); 00008 virtual ~paco_omni_thread(); 00009 00010 virtual void detach() {thread->exit();} 00011 omni_thread * thread; 00012 }; 00013 00014 class paco_omni_mutex : public paco_mutex 00015 { 00016 public: 00017 paco_omni_mutex(); 00018 ~paco_omni_mutex(); 00019 00020 void lock(); 00021 void unlock(); 00022 00023 omni_mutex * mutex; 00024 }; 00025 00026 class paco_omni_condition : public paco_condition 00027 { 00028 public: 00029 paco_omni_condition(paco_omni_mutex* m); 00030 ~paco_omni_condition(); 00031 00032 void wait(); 00033 void signal(); 00034 00035 private: 00036 omni_condition * condition; 00037 }; 00038 00039 class paco_omni_fabrique : public paco_fabrique_thread { 00040 00041 public: 00042 00043 paco_mutex* paco_create_mutex(); 00044 paco_condition* paco_create_condition(paco_mutex * mutex); 00045 paco_thread * paco_create_thread(void* (*fn)(void*), void* arg = NULL); 00046 paco_thread * paco_create_thread(void (*fn)(void*), void* arg = NULL); 00047 };