![](/media/cache/group/mbed-logo-square-512_3.png.50x50_q85.png)
semaphore example
main.cpp@1:bdf73f017a77, 2012-07-13 (annotated)
- Committer:
- emilmont
- Date:
- Fri Jul 13 10:52:33 2012 +0000
- Revision:
- 1:bdf73f017a77
- Parent:
- 0:743b15bc7d6f
- Child:
- 4:ec4791bc6554
First implementation
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) { |
emilmont | 1:bdf73f017a77 | 16 | Thread t2(test_thread, (void *)"Th 2"); |
emilmont | 1:bdf73f017a77 | 17 | Thread t3(test_thread, (void *)"Th 3"); |
emilmont | 1:bdf73f017a77 | 18 | |
emilmont | 1:bdf73f017a77 | 19 | test_thread((void *)"Th 1"); |
emilmont | 1:bdf73f017a77 | 20 | } |