mbed_example
/
mbed-os-example-platform-mutex
PlatformMutex class example - RTOS independent
main.cpp@0:2084d9e90526, 2017-11-30 (annotated)
- Committer:
- deepikabhavnani
- Date:
- Thu Nov 30 22:14:35 2017 +0000
- Revision:
- 0:2084d9e90526
Initial Draft;
Who changed what in which revision?
User | Revision | Line number | New 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 | } |