aboutsummaryrefslogtreecommitdiffstats
path: root/os
diff options
context:
space:
mode:
authorbarthess <barthess@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-08-26 11:51:53 +0000
committerbarthess <barthess@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-08-26 11:51:53 +0000
commitc0df75d7938e10e0916c6a64b1376626de1f7a4f (patch)
treefaa46a470e0aa4aee8d87943ccd8b848bcd51af4 /os
parent2ccbae7dc4cfc67616a86a4633eda2d0c9c9f360 (diff)
downloadChibiOS-c0df75d7938e10e0916c6a64b1376626de1f7a4f.tar.gz
ChibiOS-c0df75d7938e10e0916c6a64b1376626de1f7a4f.tar.bz2
ChibiOS-c0df75d7938e10e0916c6a64b1376626de1f7a4f.zip
[CPP wrapper] Added unlock functions to Mutex class.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7199 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r--os/various/cpp_wrappers/ch.cpp10
-rw-r--r--os/various/cpp_wrappers/ch.hpp22
2 files changed, 32 insertions, 0 deletions
diff --git a/os/various/cpp_wrappers/ch.cpp b/os/various/cpp_wrappers/ch.cpp
index 500db278d..fbc8d1897 100644
--- a/os/various/cpp_wrappers/ch.cpp
+++ b/os/various/cpp_wrappers/ch.cpp
@@ -529,6 +529,16 @@ namespace chibios_rt {
chMtxLockS(&mutex);
}
+ void Mutex::unlock(void) {
+
+ chMtxUnlock(&mutex);
+ }
+
+ void Mutex::unlockS(void) {
+
+ chMtxLockS(&mutex);
+ }
+
#if CH_CFG_USE_CONDVARS
/*------------------------------------------------------------------------*
* chibios_rt::CondVar *
diff --git a/os/various/cpp_wrappers/ch.hpp b/os/various/cpp_wrappers/ch.hpp
index 7588e5ee1..b0d5d824f 100644
--- a/os/various/cpp_wrappers/ch.hpp
+++ b/os/various/cpp_wrappers/ch.hpp
@@ -1215,6 +1215,28 @@ namespace chibios_rt {
* @sclass
*/
void lockS(void);
+
+ /**
+ * @brief Unlocks the next owned mutex in reverse lock order.
+ * @pre The invoking thread <b>must</b> have at least one owned mutex.
+ * @post The mutex is unlocked and removed from the per-thread stack of
+ * owned mutexes.
+ *
+ * @api
+ */
+ void unlock(void);
+
+ /**
+ * @brief Unlocks the next owned mutex in reverse lock order.
+ * @pre The invoking thread <b>must</b> have at least one owned mutex.
+ * @post The mutex is unlocked and removed from the per-thread stack of
+ * owned mutexes.
+ * @post This function does not reschedule so a call to a rescheduling
+ * function must be performed before unlocking the kernel.
+ *
+ * @sclass
+ */
+ void unlockS(void);
};
#if CH_CFG_USE_CONDVARS || defined(__DOXYGEN__)