00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 //---------------------------------------------------------------------- 00015 //---------------------------------------------------------------------- 00016 #ifndef ICL_CORE_THREAD_MUTEX_IMPL_LXRT38_H_INCLUDED 00017 #define ICL_CORE_THREAD_MUTEX_IMPL_LXRT38_H_INCLUDED 00018 00019 #include <rtai_posix.h> 00020 00021 #include "icl_core_thread/MutexImpl.h" 00022 #include "icl_core_thread/SemaphoreImplLxrt38.h" 00023 00024 namespace icl_core { 00025 namespace thread { 00026 00027 class MutexImplLxrt38 : public MutexImpl 00028 { 00029 public: 00030 MutexImplLxrt38(); 00031 virtual ~MutexImplLxrt38(); 00032 00033 virtual bool lock(); 00034 virtual bool lock(const icl_core::TimeSpan& timeout); 00035 virtual bool lock(const icl_core::TimeStamp& timeout); 00036 virtual bool tryLock(); 00037 virtual void unlock(); 00038 00039 private: 00040 SemaphoreImplLxrt38 m_sem; 00041 }; 00042 00043 } 00044 } 00045 00046 #endif