mbed_example
/
rtos_semaphore
semaphore example
main.cpp@4:ec4791bc6554, 2017-01-11 (annotated)
- Committer:
- Bartek Szatkowski
- Date:
- Wed Jan 11 14:39:06 2017 +0000
- Revision:
- 4:ec4791bc6554
- Parent:
- 1:bdf73f017a77
- Child:
- 5:574f47121e8e
Update example to use current RTOS API
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 | #include "rtos.h" |
emilmont | 1:bdf73f017a77 | 3 | |
emilmont | 1:bdf73f017a77 | 4 | Semaphore two_slots(2); |
emilmont | 1:bdf73f017a77 | 5 | |
emilmont | 1:bdf73f017a77 | 6 | void test_thread(void const *name) { |
emilmont | 1:bdf73f017a77 | 7 | while (true) { |
emilmont | 1:bdf73f017a77 | 8 | two_slots.wait(); |
emilmont | 1:bdf73f017a77 | 9 | printf("%s\n\r", (const char*)name); |
emilmont | 1:bdf73f017a77 | 10 | Thread::wait(1000); |
emilmont | 1:bdf73f017a77 | 11 | two_slots.release(); |
emilmont | 1:bdf73f017a77 | 12 | } |
emilmont | 1:bdf73f017a77 | 13 | } |
emilmont | 1:bdf73f017a77 | 14 | |
emilmont | 1:bdf73f017a77 | 15 | int main (void) { |
Bartek Szatkowski |
4:ec4791bc6554 | 16 | Thread t2; |
Bartek Szatkowski |
4:ec4791bc6554 | 17 | Thread t3; |
Bartek Szatkowski |
4:ec4791bc6554 | 18 | |
Bartek Szatkowski |
4:ec4791bc6554 | 19 | t2.start(callback(test_thread, (void *)"Th 2")); |
Bartek Szatkowski |
4:ec4791bc6554 | 20 | t3.start(callback(test_thread, (void *)"Th 3")); |
Bartek Szatkowski |
4:ec4791bc6554 | 21 | |
emilmont | 1:bdf73f017a77 | 22 | test_thread((void *)"Th 1"); |
emilmont | 1:bdf73f017a77 | 23 | } |