mbed_example
/
rtos_semaphore
semaphore example
main.cpp@5:574f47121e8e, 2017-01-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |