00001 #ifndef __J2K__PThread_Mutex_HPP__
00002 #define __J2K__PThread_Mutex_HPP__
00003
00004 #include <j2k/Fred/Standard.hpp>
00005
00006
00007 #define MC_OnError( x, y, z )
00008
00009 #include <errno.h>
00010 #include <pthread.h>
00011 #include <time.h>
00012
00013
00014
00015
00016
00017 class PThread_Mutex {
00018 public:
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 PThread_Mutex();
00035
00036
00037 virtual ~PThread_Mutex();
00038
00039
00040 void lock();
00041
00042
00043 void unlock();
00044
00045
00046 inline void tryLock();
00047
00048
00049 inline int getPriorityCeiling();
00050
00051
00052 inline int setPriorityCeiling( int new_ceiling );
00053
00054
00055 inline int getType();
00056
00057
00058 inline int getProtocol();
00059
00060 private:
00061 int mutex_type;
00062 int protocol;
00063 int prioceiling;
00064 int state;
00065 pid_t owner;
00066
00067 pthread_mutexattr_t attr;
00068 pthread_mutex_t mutex;
00069
00070
00071
00072 private:
00073
00074 inline PThread_Mutex( const PThread_Mutex& src );
00075
00076
00077 inline const PThread_Mutex& operator=( const PThread_Mutex& src );
00078 };
00079
00080 typedef PThread_Mutex Mutex;
00081
00082
00083 #include <j2k/nto/Mutex.inl>
00084
00085 #endif