semaphore example

Committer:
mab5449
Date:
Fri Jan 13 19:50:12 2017 +0000
Revision:
5:574f47121e8e
Parent:
4:ec4791bc6554
Child:
7:755dee0042c3
Updated to mbed 5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 1:bdf73f017a77 1 #include "mbed.h"
emilmont 1:bdf73f017a77 2
emilmont 1:bdf73f017a77 3 Semaphore two_slots(2);
mab5449 5:574f47121e8e 4 Thread t2;
mab5449 5:574f47121e8e 5 Thread t3;
mab5449 5:574f47121e8e 6
emilmont 1:bdf73f017a77 7 void test_thread(void const *name) {
emilmont 1:bdf73f017a77 8 while (true) {
emilmont 1:bdf73f017a77 9 two_slots.wait();
emilmont 1:bdf73f017a77 10 printf("%s\n\r", (const char*)name);
mab5449 5:574f47121e8e 11 wait(1);
emilmont 1:bdf73f017a77 12 two_slots.release();
emilmont 1:bdf73f017a77 13 }
emilmont 1:bdf73f017a77 14 }
emilmont 1:bdf73f017a77 15
emilmont 1:bdf73f017a77 16 int main (void) {
Bartek Szatkowski 4:ec4791bc6554 17 t2.start(callback(test_thread, (void *)"Th 2"));
Bartek Szatkowski 4:ec4791bc6554 18 t3.start(callback(test_thread, (void *)"Th 3"));
Bartek Szatkowski 4:ec4791bc6554 19
emilmont 1:bdf73f017a77 20 test_thread((void *)"Th 1");
emilmont 1:bdf73f017a77 21 }