PlatformMutex class example - RTOS independent

Committer:
deepikabhavnani
Date:
Thu Nov 30 22:14:35 2017 +0000
Revision:
0:2084d9e90526
Initial Draft;

Who changed what in which revision?

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