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.
Mutex.h
- Committer:
- mailgate_user
- Date:
- 2012-06-24
- Revision:
- 0:ea15e955433d
File content as of revision 0:ea15e955433d:
/* Copyright (c) 2012 mbed.org */
#ifndef MUTEX_H
#define MUTEX_H
#include <stdint.h>
#include "cmsis_os.h"
namespace rtos {
/*! The Mutex class is used to synchronise the execution of threads.
This is for example used to protect access to a shared resource.
*/
class Mutex {
public:
/*! Create and Initialize a Mutex object */
Mutex();
/*! Wait until a Mutex becomes available.
\param millisec timeout value or 0 in case of no time-out. (default: osWaitForever)
\return status code that indicates the execution status of the function.
*/
osStatus lock(uint32_t millisec=osWaitForever);
/*! Try to lock the mutex, and return immediately
\return true if the mutex was acquired, false otherwise.
*/
bool trylock();
/*! Unlock the mutex that has previously been locked by the same thread
\return status code that indicates the execution status of the function.
*/
osStatus unlock();
private:
osMutexId _osMutexId;
osMutexDef_t _osMutexDef;
#ifdef CMSIS_OS_RTX
int32_t _mutex_data[3];
#endif
};
}
#endif