ScopedMutexLock.cpp
Go to the documentation of this file.
00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
00002 
00003 // -- BEGIN LICENSE BLOCK ----------------------------------------------
00004 // This file is part of FZIs ic_workspace.
00005 //
00006 // This program is free software licensed under the LGPL
00007 // (GNU LESSER GENERAL PUBLIC LICENSE Version 3).
00008 // You can find a copy of this license in LICENSE folder in the top
00009 // directory of the source code.
00010 //
00011 // © Copyright 2016 FZI Forschungszentrum Informatik, Karlsruhe, Germany
00012 //
00013 // -- END LICENSE BLOCK ------------------------------------------------
00014 
00015 //----------------------------------------------------------------------
00022 //----------------------------------------------------------------------
00023 #include "icl_core_thread/ScopedMutexLock.h"
00024 
00025 #include "icl_core_thread/Mutex.h"
00026 
00027 namespace icl_core {
00028 namespace thread {
00029 
00030 ScopedMutexLock::ScopedMutexLock(Mutex& mutex, bool force)
00031   : m_mutex(mutex), m_is_locked(false)
00032 {
00033   do
00034   {
00035     m_is_locked = m_mutex.lock();
00036   }
00037   while (force && !m_is_locked);
00038 }
00039 
00040 ScopedMutexLock::~ScopedMutexLock()
00041 {
00042   if (isLocked())
00043   {
00044     m_mutex.unlock();
00045   }
00046 }
00047 
00049 #ifdef _IC_BUILDER_DEPRECATED_STYLE_
00050 
00054 bool ScopedMutexLock::IsLocked() const
00055 {
00056   return isLocked();
00057 }
00058 
00059 #endif
00060 
00061 
00062 }
00063 }


fzi_icl_core
Author(s):
autogenerated on Tue Aug 8 2017 02:28:03