William Singleton
/
595_Lab_8_Part_III_Semaphore
Lab 8 part 3
main.cpp@13:a68509ad3202, 2020-05-03 (annotated)
- Committer:
- wssingle
- Date:
- Sun May 03 19:12:28 2020 +0000
- Revision:
- 13:a68509ad3202
- Parent:
- 12:4e3f46e615d9
Lab 8 part 3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wssingle | 13:a68509ad3202 | 1 | #include "mbed.h" |
wssingle | 13:a68509ad3202 | 2 | #include "rtos.h" |
wssingle | 13:a68509ad3202 | 3 | |
wssingle | 13:a68509ad3202 | 4 | Semaphore two_slots(2); |
wssingle | 13:a68509ad3202 | 5 | |
wssingle | 13:a68509ad3202 | 6 | void test_thread(void const *name) { |
wssingle | 13:a68509ad3202 | 7 | while (true) { |
wssingle | 13:a68509ad3202 | 8 | two_slots.wait(); |
wssingle | 13:a68509ad3202 | 9 | printf("%s\n\r", (const char*)name); |
wssingle | 13:a68509ad3202 | 10 | Thread::wait(1000); |
wssingle | 13:a68509ad3202 | 11 | two_slots.release(); |
wssingle | 13:a68509ad3202 | 12 | } |
wssingle | 13:a68509ad3202 | 13 | } |
wssingle | 13:a68509ad3202 | 14 | |
wssingle | 13:a68509ad3202 | 15 | int main (void) { |
wssingle | 13:a68509ad3202 | 16 | Thread t2; |
wssingle | 13:a68509ad3202 | 17 | Thread t3; |
wssingle | 13:a68509ad3202 | 18 | |
wssingle | 13:a68509ad3202 | 19 | t2.start(callback(test_thread, (void *)"Th 2")); |
wssingle | 13:a68509ad3202 | 20 | t3.start(callback(test_thread, (void *)"Th 3")); |
wssingle | 13:a68509ad3202 | 21 | |
wssingle | 13:a68509ad3202 | 22 | test_thread((void *)"Th 1"); |
wssingle | 13:a68509ad3202 | 23 | } |