Part 2 lab 8

Dependencies:   mbed mbed-rtos

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?

UserRevisionLine numberNew 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 }