Basic example showing the Semaphore API

Dependencies:   mbed-rtos mbed

mbed 2 and mbed OS 5

This is an mbed 2 example. mbed OS 5 has integrated the mbed library with mbed-rtos. For an mbed-os example, please see:

Import programrtos_semaphore

semaphore example

Revision:
1:bdf73f017a77
Parent:
0:743b15bc7d6f
Child:
4:ec4791bc6554
--- a/main.cpp	Fri Jul 13 10:49:19 2012 +0000
+++ b/main.cpp	Fri Jul 13 10:52:33 2012 +0000
@@ -0,0 +1,20 @@
+#include "mbed.h"
+#include "rtos.h"
+
+Semaphore two_slots(2);
+
+void test_thread(void const *name) {
+    while (true) {
+        two_slots.wait();
+        printf("%s\n\r", (const char*)name);
+        Thread::wait(1000);
+        two_slots.release();
+    }
+}
+
+int main (void) {
+    Thread t2(test_thread, (void *)"Th 2");
+    Thread t3(test_thread, (void *)"Th 3");
+    
+    test_thread((void *)"Th 1");
+}