Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
PlatformMutex.h
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2006-2013 ARM Limited 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 #ifndef PLATFORM_MUTEX_H 00017 #define PLATFORM_MUTEX_H 00018 00019 #include "platform/NonCopyable.h" 00020 00021 /** \addtogroup platform 00022 * @{ 00023 */ 00024 00025 /** \defgroup platform_PlatformMutex PlatformMutex class 00026 * @{ 00027 */ 00028 00029 /** The PlatformMutex class is used to synchronize the execution of threads. 00030 * 00031 * Mbed drivers use the PlatformMutex class instead of rtos::Mutex. 00032 * This enables the use of drivers when the Mbed OS is compiled without the RTOS. 00033 * 00034 * @note 00035 * - When the RTOS is present, the PlatformMutex becomes a typedef for rtos::Mutex. 00036 * - When the RTOS is absent, all methods are defined as noop. 00037 */ 00038 00039 #ifdef MBED_CONF_RTOS_PRESENT 00040 00041 #include "rtos/Mutex.h" 00042 typedef rtos::Mutex PlatformMutex; 00043 00044 #else 00045 00046 class PlatformMutex: private mbed::NonCopyable<PlatformMutex> { 00047 public: 00048 /** Create a PlatformMutex object. 00049 * 00050 * @note When the RTOS is present, this is an alias for rtos::Mutex::Mutex(). 00051 */ 00052 PlatformMutex() 00053 { 00054 } 00055 00056 /** PlatformMutex destructor. 00057 * 00058 * @note When the RTOS is present, this is an alias for rtos::Mutex::~Mutex(). 00059 */ 00060 ~PlatformMutex() 00061 { 00062 } 00063 00064 /** Wait until a PlatformMutex becomes available. 00065 * 00066 * @note 00067 * - When the RTOS is present, this is an alias for rtos::Mutex::lock(). 00068 * - When the RTOS is absent, this is a noop. 00069 */ 00070 void lock() 00071 { 00072 } 00073 00074 /** Unlock a PlatformMutex that the same thread has previously locked. 00075 * 00076 * @note 00077 * - When the RTOS is present, this is an alias for rtos::Mutex::unlock(). 00078 * - When the RTOS is absent, this is a noop. 00079 */ 00080 void unlock() 00081 { 00082 } 00083 }; 00084 00085 #endif 00086 00087 #endif 00088 00089 /**@}*/ 00090 00091 /**@}*/
Generated on Tue Jul 12 2022 19:04:39 by
1.7.2