MHVLib
20111011
An efficiency oriented runtime library for AVR microcontrollers
|
00001 /* 00002 * MHV_Lock.cpp 00003 * 00004 * Created on: 26/06/2011 00005 * Author: deece 00006 */ 00007 00008 #include "MHV_Lock.h" 00009 00013 MHV_Lock::MHV_Lock() { 00014 _lock = false; 00015 } 00016 00021 bool MHV_Lock::obtain() { 00022 ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { 00023 if (!_lock) { 00024 _lock = true; 00025 return true; 00026 } 00027 } 00028 return false; 00029 } 00030 00034 void MHV_Lock::release() { 00035 ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { 00036 _lock = false; 00037 } 00038 } 00039 00044 bool MHV_Lock::check() { 00045 return _lock; 00046 }