William Singleton
/
595_Lab_8_Part_II_MUTEX
Part 2 lab 8
main.cpp@13:094d49fbe33e, 2020-05-03 (annotated)
- Committer:
- wssingle
- Date:
- Sun May 03 19:10:53 2020 +0000
- Revision:
- 13:094d49fbe33e
- Parent:
- 12:4e3f46e615d9
Part 2 lab 8
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wssingle | 13:094d49fbe33e | 1 | #include "mbed.h" |
wssingle | 13:094d49fbe33e | 2 | #include "rtos.h" |
wssingle | 13:094d49fbe33e | 3 | |
wssingle | 13:094d49fbe33e | 4 | Mutex stdio_mutex; |
wssingle | 13:094d49fbe33e | 5 | |
wssingle | 13:094d49fbe33e | 6 | void notify(const char* name, int state) { |
wssingle | 13:094d49fbe33e | 7 | stdio_mutex.lock(); |
wssingle | 13:094d49fbe33e | 8 | printf("%s: %d\n\r", name, state); |
wssingle | 13:094d49fbe33e | 9 | stdio_mutex.unlock(); |
wssingle | 13:094d49fbe33e | 10 | } |
wssingle | 13:094d49fbe33e | 11 | |
wssingle | 13:094d49fbe33e | 12 | void test_thread(void const *args) { |
wssingle | 13:094d49fbe33e | 13 | while (true) { |
wssingle | 13:094d49fbe33e | 14 | notify((const char*)args, 0); Thread::wait(1000); |
wssingle | 13:094d49fbe33e | 15 | notify((const char*)args, 1); Thread::wait(1000); |
wssingle | 13:094d49fbe33e | 16 | } |
wssingle | 13:094d49fbe33e | 17 | } |
wssingle | 13:094d49fbe33e | 18 | |
wssingle | 13:094d49fbe33e | 19 | int main() { |
wssingle | 13:094d49fbe33e | 20 | Thread t2; |
wssingle | 13:094d49fbe33e | 21 | Thread t3; |
wssingle | 13:094d49fbe33e | 22 | |
wssingle | 13:094d49fbe33e | 23 | t2.start(callback(test_thread, (void *)"Th 2")); |
wssingle | 13:094d49fbe33e | 24 | t3.start(callback(test_thread, (void *)"Th 3")); |
wssingle | 13:094d49fbe33e | 25 | |
wssingle | 13:094d49fbe33e | 26 | test_thread((void *)"Th 1"); |
wssingle | 13:094d49fbe33e | 27 | } |