Libary for PM2.
Dependencies: RangeFinder FastPWM
ThreadFlag.cpp
- Committer:
- mrford1616
- Date:
- 2021-04-24
- Revision:
- 9:97b59d914fd8
- Parent:
- 4:9c003c402033
File content as of revision 9:97b59d914fd8:
/* * ThreadFlag.cpp * Copyright (c) 2020, ZHAW * All rights reserved. */ #include "ThreadFlag.h" using namespace std; unsigned int ThreadFlag::threadFlags = 0; /** * Creates a signal object and assignes a unique flag. */ ThreadFlag::ThreadFlag() { mutex.lock(); unsigned int n = 0; while ((((1 << n) & threadFlags) > 0) && (n < 30)) n++; threadFlag = (1 << n); mutex.unlock(); } /** * Deletes the signal object and releases the assigned flag. */ ThreadFlag::~ThreadFlag() { mutex.lock(); threadFlags &= ~threadFlag; mutex.unlock(); } /** * Gets the assigned thread flag. */ unsigned int ThreadFlag::read() { return threadFlag; } /** * The empty operator is a shorthand notation of the <code>read()</code> method. */ ThreadFlag::operator unsigned int() { return read(); }