LAN(Wi-Fi) air controller through the Internet. Also you can use TANK. See:http://wizard.nestegg.jp/lanir.html
Dependencies: EthernetNetIf mbed HTTPServer
Semaphore.h@0:6f9648f5eaab, 2011-08-01 (annotated)
- Committer:
- halfpitch
- Date:
- Mon Aug 01 19:21:55 2011 +0000
- Revision:
- 0:6f9648f5eaab
Rev.A
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
halfpitch | 0:6f9648f5eaab | 1 | // Copyright (C) 2010 Robert M. Bouwens |
halfpitch | 0:6f9648f5eaab | 2 | |
halfpitch | 0:6f9648f5eaab | 3 | #ifndef _SEMAPHORE_H_ |
halfpitch | 0:6f9648f5eaab | 4 | #define _SEMAPHORE_H_ |
halfpitch | 0:6f9648f5eaab | 5 | |
halfpitch | 0:6f9648f5eaab | 6 | /* |
halfpitch | 0:6f9648f5eaab | 7 | * http://mbed.org/forum/mbed/topic/181/#comment-799 |
halfpitch | 0:6f9648f5eaab | 8 | */ |
halfpitch | 0:6f9648f5eaab | 9 | |
halfpitch | 0:6f9648f5eaab | 10 | class Semaphore { |
halfpitch | 0:6f9648f5eaab | 11 | public: |
halfpitch | 0:6f9648f5eaab | 12 | Semaphore(): s(SemFree) {}; |
halfpitch | 0:6f9648f5eaab | 13 | |
halfpitch | 0:6f9648f5eaab | 14 | bool try_enter() { |
halfpitch | 0:6f9648f5eaab | 15 | int oldval = __ldrex(&s); |
halfpitch | 0:6f9648f5eaab | 16 | if (oldval == SemTaken) { |
halfpitch | 0:6f9648f5eaab | 17 | __clrex(); |
halfpitch | 0:6f9648f5eaab | 18 | return false; |
halfpitch | 0:6f9648f5eaab | 19 | } |
halfpitch | 0:6f9648f5eaab | 20 | s = SemTaken; |
halfpitch | 0:6f9648f5eaab | 21 | __clrex(); |
halfpitch | 0:6f9648f5eaab | 22 | return SemTaken == s; |
halfpitch | 0:6f9648f5eaab | 23 | }; |
halfpitch | 0:6f9648f5eaab | 24 | |
halfpitch | 0:6f9648f5eaab | 25 | void release() { |
halfpitch | 0:6f9648f5eaab | 26 | s = SemFree; |
halfpitch | 0:6f9648f5eaab | 27 | }; |
halfpitch | 0:6f9648f5eaab | 28 | |
halfpitch | 0:6f9648f5eaab | 29 | private: |
halfpitch | 0:6f9648f5eaab | 30 | enum { SemFree = 1, SemTaken = 2 }; |
halfpitch | 0:6f9648f5eaab | 31 | volatile int s; |
halfpitch | 0:6f9648f5eaab | 32 | }; |
halfpitch | 0:6f9648f5eaab | 33 | |
halfpitch | 0:6f9648f5eaab | 34 | #endif |