mutex example

Committer:
sarahmarshy
Date:
Fri Jun 23 14:54:16 2017 -0500
Revision:
7:6a34e5f81bba
Parent:
6:1ae0d86d2020
"Update mbed-os"

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 1:0f886ffbe0c1 1 #include "mbed.h"
emilmont 1:0f886ffbe0c1 2
Bartek Szatkowski 5:384d6cef11d4 3 Mutex stdio_mutex;
mab5449 6:1ae0d86d2020 4 Thread t2;
mab5449 6:1ae0d86d2020 5 Thread t3;
mab5449 6:1ae0d86d2020 6
emilmont 1:0f886ffbe0c1 7 void notify(const char* name, int state) {
emilmont 1:0f886ffbe0c1 8 stdio_mutex.lock();
emilmont 1:0f886ffbe0c1 9 printf("%s: %d\n\r", name, state);
emilmont 1:0f886ffbe0c1 10 stdio_mutex.unlock();
emilmont 1:0f886ffbe0c1 11 }
emilmont 1:0f886ffbe0c1 12
emilmont 1:0f886ffbe0c1 13 void test_thread(void const *args) {
emilmont 1:0f886ffbe0c1 14 while (true) {
mab5449 6:1ae0d86d2020 15 notify((const char*)args, 0); wait(1);
mab5449 6:1ae0d86d2020 16 notify((const char*)args, 1); wait(1);
emilmont 1:0f886ffbe0c1 17 }
emilmont 1:0f886ffbe0c1 18 }
emilmont 1:0f886ffbe0c1 19
emilmont 1:0f886ffbe0c1 20 int main() {
Bartek Szatkowski 5:384d6cef11d4 21 t2.start(callback(test_thread, (void *)"Th 2"));
Bartek Szatkowski 5:384d6cef11d4 22 t3.start(callback(test_thread, (void *)"Th 3"));
Bartek Szatkowski 5:384d6cef11d4 23
emilmont 1:0f886ffbe0c1 24 test_thread((void *)"Th 1");
emilmont 1:0f886ffbe0c1 25 }