/* * MutextestTask.cpp * * Created on: 19.07.2018 * Author: mohr */ #include #include MutexIF * MutextestTask::mutex = nullptr; MutextestTask::MutextestTask(const char *name, object_id_t setObjectId) : SystemObject(setObjectId), name(name), locked(false) { if (mutex == NULL) { mutex = MutexFactory::instance()->createMutex(); } } ReturnValue_t MutextestTask::performOperation(uint8_t operationCode) { if (!locked){ sif::info << name << ": locking..." << std::endl; ReturnValue_t result = mutex->lockMutex(MutexIF::BLOCKING); sif::info << name << ": locked with " << (int) result << std::endl; if (result == HasReturnvaluesIF::RETURN_OK){ locked = true; } } else { sif::info << name << ": releasing" << std::endl; mutex->unlockMutex(); locked = false; } return HasReturnvaluesIF::RETURN_OK; } MutextestTask::~MutextestTask() { // TODO Auto-generated destructor stub }