From 979fea3400668661d817621766c64af1a62ed379 Mon Sep 17 00:00:00 2001 From: "Robin.Mueller" Date: Fri, 7 Aug 2020 22:15:03 +0200 Subject: [PATCH] mutex helper api change --- container/SharedRingBuffer.cpp | 14 +++++++------- datapoollocal/LocalPoolVariable.tpp | 6 ++++-- datapoollocal/LocalPoolVector.tpp | 6 ++++-- ipc/MutexHelper.h | 2 +- osal/linux/TmTcUnixUdpBridge.cpp | 2 +- storagemanager/PoolManager.tpp | 9 ++++++--- 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/container/SharedRingBuffer.cpp b/container/SharedRingBuffer.cpp index 2fde2851..a8b06b01 100644 --- a/container/SharedRingBuffer.cpp +++ b/container/SharedRingBuffer.cpp @@ -19,41 +19,41 @@ SharedRingBuffer::SharedRingBuffer(object_id_t objectId, uint8_t *buffer, ReturnValue_t SharedRingBuffer::getFreeElementProtected(uint8_t** writePtr, size_t amount) { - MutexHelper(mutex, mutexTimeout); + MutexHelper(mutex, MutexIF::TimeoutType::WAITING, mutexTimeout); return SimpleRingBuffer::getFreeElement(writePtr,amount); } ReturnValue_t SharedRingBuffer::writeDataProtected(const uint8_t *data, size_t amount) { - MutexHelper(mutex, mutexTimeout); + MutexHelper(mutex, MutexIF::TimeoutType::WAITING, mutexTimeout); return SimpleRingBuffer::writeData(data,amount); } ReturnValue_t SharedRingBuffer::readDataProtected(uint8_t *data, size_t amount, bool incrementReadPtr, bool readRemaining, size_t *trueAmount) { - MutexHelper(mutex, mutexTimeout); + MutexHelper(mutex, MutexIF::TimeoutType::WAITING, mutexTimeout); return SimpleRingBuffer::readData(data,amount, incrementReadPtr, readRemaining, trueAmount); } ReturnValue_t SharedRingBuffer::deleteDataProtected(size_t amount, bool deleteRemaining, size_t *trueAmount) { - MutexHelper(mutex, mutexTimeout); + MutexHelper(mutex, MutexIF::TimeoutType::WAITING, mutexTimeout); return SimpleRingBuffer::deleteData(amount, deleteRemaining, trueAmount); } size_t SharedRingBuffer::getExcessBytes() const { - MutexHelper(mutex, mutexTimeout); + MutexHelper(mutex, MutexIF::TimeoutType::WAITING, mutexTimeout); return SimpleRingBuffer::getExcessBytes(); } void SharedRingBuffer::moveExcessBytesToStart() { - MutexHelper(mutex, mutexTimeout); + MutexHelper(mutex, MutexIF::TimeoutType::WAITING, mutexTimeout); return SimpleRingBuffer::moveExcessBytesToStart(); } size_t SharedRingBuffer::getAvailableReadDataProtected(uint8_t n) const { - MutexHelper(mutex, mutexTimeout); + MutexHelper(mutex, MutexIF::TimeoutType::WAITING, mutexTimeout); return ((write + size) - read[n]) % size; } diff --git a/datapoollocal/LocalPoolVariable.tpp b/datapoollocal/LocalPoolVariable.tpp index 0b96bb4f..b4e09f2d 100644 --- a/datapoollocal/LocalPoolVariable.tpp +++ b/datapoollocal/LocalPoolVariable.tpp @@ -48,7 +48,8 @@ inline LocalPoolVar::LocalPoolVar(lp_id_t poolId, object_id_t poolOwner, template inline ReturnValue_t LocalPoolVar::read(dur_millis_t lockTimeout) { - MutexHelper(hkManager->getMutexHandle(), lockTimeout); + MutexHelper(hkManager->getMutexHandle(), MutexIF::TimeoutType::WAITING, + lockTimeout); return readWithoutLock(); } @@ -76,7 +77,8 @@ inline ReturnValue_t LocalPoolVar::readWithoutLock() { template inline ReturnValue_t LocalPoolVar::commit(dur_millis_t lockTimeout) { - MutexHelper(hkManager->getMutexHandle(), lockTimeout); + MutexHelper(hkManager->getMutexHandle(), MutexIF::TimeoutType::WAITING, + lockTimeout); return commitWithoutLock(); } diff --git a/datapoollocal/LocalPoolVector.tpp b/datapoollocal/LocalPoolVector.tpp index b7f2fe19..7c3d2c1e 100644 --- a/datapoollocal/LocalPoolVector.tpp +++ b/datapoollocal/LocalPoolVector.tpp @@ -44,7 +44,8 @@ inline LocalPoolVector::LocalPoolVector(lp_id_t poolId, template inline ReturnValue_t LocalPoolVector::read(uint32_t lockTimeout) { - MutexHelper(hkManager->getMutexHandle(), lockTimeout); + MutexHelper(hkManager->getMutexHandle(), MutexIF::TimeoutType::WAITING, + lockTimeout); return readWithoutLock(); } template @@ -74,7 +75,8 @@ inline ReturnValue_t LocalPoolVector::readWithoutLock() { template inline ReturnValue_t LocalPoolVector::commit( uint32_t lockTimeout) { - MutexHelper(hkManager->getMutexHandle(), lockTimeout); + MutexHelper(hkManager->getMutexHandle(), MutexIF::TimeoutType::WAITING, + lockTimeout); return commitWithoutLock(); } diff --git a/ipc/MutexHelper.h b/ipc/MutexHelper.h index a8949737..52ce51e3 100644 --- a/ipc/MutexHelper.h +++ b/ipc/MutexHelper.h @@ -7,7 +7,7 @@ class MutexHelper { public: MutexHelper(MutexIF* mutex, MutexIF::TimeoutType timeoutType = - MutexIF::TimeoutType::BLOCKING, uint32_t timeoutMs) : + MutexIF::TimeoutType::BLOCKING, uint32_t timeoutMs = 0) : internalMutex(mutex) { ReturnValue_t status = mutex->lockMutex(timeoutType, timeoutMs); diff --git a/osal/linux/TmTcUnixUdpBridge.cpp b/osal/linux/TmTcUnixUdpBridge.cpp index 92fbbdfa..2cdb93f3 100644 --- a/osal/linux/TmTcUnixUdpBridge.cpp +++ b/osal/linux/TmTcUnixUdpBridge.cpp @@ -85,7 +85,7 @@ ReturnValue_t TmTcUnixUdpBridge::sendTm(const uint8_t *data, size_t dataLen) { } void TmTcUnixUdpBridge::checkAndSetClientAddress(sockaddr_in newAddress) { - MutexHelper lock(mutex, 10); + MutexHelper lock(mutex, MutexIF::TimeoutType::WAITING, 10); // char ipAddress [15]; // sif::debug << "IP Address Sender: "<< inet_ntop(AF_INET, diff --git a/storagemanager/PoolManager.tpp b/storagemanager/PoolManager.tpp index 4ca22b85..0656e967 100644 --- a/storagemanager/PoolManager.tpp +++ b/storagemanager/PoolManager.tpp @@ -21,7 +21,8 @@ inline PoolManager::~PoolManager(void) { template inline ReturnValue_t PoolManager::reserveSpace( const uint32_t size, store_address_t* address, bool ignoreFault) { - MutexHelper mutexHelper(mutex, mutexTimeout); + MutexHelper mutexHelper(mutex, MutexIF::TimeoutType::WAITING, + mutexTimeout); ReturnValue_t status = LocalPool::reserveSpace(size, address,ignoreFault); return status; @@ -33,7 +34,8 @@ inline ReturnValue_t PoolManager::deleteData( // debug << "PoolManager( " << translateObject(getObjectId()) << // " )::deleteData from store " << packet_id.pool_index << // ". id is "<< packet_id.packet_index << std::endl; - MutexHelper mutexHelper(mutex, mutexTimeout); + MutexHelper mutexHelper(mutex, MutexIF::TimeoutType::WAITING, + mutexTimeout); ReturnValue_t status = LocalPool::deleteData(packet_id); return status; } @@ -41,7 +43,8 @@ inline ReturnValue_t PoolManager::deleteData( template inline ReturnValue_t PoolManager::deleteData(uint8_t* buffer, size_t size, store_address_t* storeId) { - MutexHelper mutexHelper(mutex, mutexTimeout); + MutexHelper mutexHelper(mutex, MutexIF::TimeoutType::WAITING, + mutexTimeout); ReturnValue_t status = LocalPool::deleteData(buffer, size, storeId); return status;