update
This commit is contained in:
parent
622c7a5a0d
commit
a58e47623f
@ -125,9 +125,10 @@ inline LocalPool<NUMBER_OF_POOLS>::~LocalPool(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<uint8_t NUMBER_OF_POOLS> inline
|
template<uint8_t NUMBER_OF_POOLS>
|
||||||
ReturnValue_t LocalPool<NUMBER_OF_POOLS>::addData(store_address_t* storageId,
|
inline ReturnValue_t LocalPool<NUMBER_OF_POOLS>::addData(
|
||||||
const uint8_t* data, size_t size, bool ignoreFault) {
|
store_address_t* storageId, const uint8_t* data, size_t size,
|
||||||
|
bool ignoreFault) {
|
||||||
ReturnValue_t status = reserveSpace(size, storageId, ignoreFault);
|
ReturnValue_t status = reserveSpace(size, storageId, ignoreFault);
|
||||||
if (status == RETURN_OK) {
|
if (status == RETURN_OK) {
|
||||||
write(*storageId, data, size);
|
write(*storageId, data, size);
|
||||||
|
@ -34,9 +34,10 @@ public:
|
|||||||
ReturnValue_t deleteData(uint8_t* buffer, size_t size,
|
ReturnValue_t deleteData(uint8_t* buffer, size_t size,
|
||||||
store_address_t* storeId = nullptr) override;
|
store_address_t* storeId = nullptr) override;
|
||||||
|
|
||||||
|
void setMutexTimeout(uint32_t mutexTimeoutMs);
|
||||||
protected:
|
protected:
|
||||||
//! Default mutex timeout value to prevent permanent blocking.
|
//! Default mutex timeout value to prevent permanent blocking.
|
||||||
static constexpr uint32_t mutexTimeout = 50;
|
uint32_t mutexTimeoutMs = 20;
|
||||||
|
|
||||||
ReturnValue_t reserveSpace(const uint32_t size, store_address_t* address,
|
ReturnValue_t reserveSpace(const uint32_t size, store_address_t* address,
|
||||||
bool ignoreFault) override;
|
bool ignoreFault) override;
|
||||||
|
@ -21,7 +21,7 @@ inline PoolManager<NUMBER_OF_POOLS>::~PoolManager(void) {
|
|||||||
template<uint8_t NUMBER_OF_POOLS>
|
template<uint8_t NUMBER_OF_POOLS>
|
||||||
inline ReturnValue_t PoolManager<NUMBER_OF_POOLS>::reserveSpace(
|
inline ReturnValue_t PoolManager<NUMBER_OF_POOLS>::reserveSpace(
|
||||||
const uint32_t size, store_address_t* address, bool ignoreFault) {
|
const uint32_t size, store_address_t* address, bool ignoreFault) {
|
||||||
MutexHelper mutexHelper(mutex,MutexIF::BLOCKING);
|
MutexHelper mutexHelper(mutex,MutexIF::WAITING, mutexTimeoutMs);
|
||||||
ReturnValue_t status = LocalPool<NUMBER_OF_POOLS>::reserveSpace(size,
|
ReturnValue_t status = LocalPool<NUMBER_OF_POOLS>::reserveSpace(size,
|
||||||
address,ignoreFault);
|
address,ignoreFault);
|
||||||
return status;
|
return status;
|
||||||
@ -33,7 +33,7 @@ inline ReturnValue_t PoolManager<NUMBER_OF_POOLS>::deleteData(
|
|||||||
// debug << "PoolManager( " << translateObject(getObjectId()) <<
|
// debug << "PoolManager( " << translateObject(getObjectId()) <<
|
||||||
// " )::deleteData from store " << packet_id.pool_index <<
|
// " )::deleteData from store " << packet_id.pool_index <<
|
||||||
// ". id is "<< packet_id.packet_index << std::endl;
|
// ". id is "<< packet_id.packet_index << std::endl;
|
||||||
MutexHelper mutexHelper(mutex,MutexIF::BLOCKING);
|
MutexHelper mutexHelper(mutex,MutexIF::WAITING, mutexTimeoutMs);
|
||||||
ReturnValue_t status = LocalPool<NUMBER_OF_POOLS>::deleteData(packet_id);
|
ReturnValue_t status = LocalPool<NUMBER_OF_POOLS>::deleteData(packet_id);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@ -41,11 +41,16 @@ inline ReturnValue_t PoolManager<NUMBER_OF_POOLS>::deleteData(
|
|||||||
template<uint8_t NUMBER_OF_POOLS>
|
template<uint8_t NUMBER_OF_POOLS>
|
||||||
inline ReturnValue_t PoolManager<NUMBER_OF_POOLS>::deleteData(uint8_t* buffer,
|
inline ReturnValue_t PoolManager<NUMBER_OF_POOLS>::deleteData(uint8_t* buffer,
|
||||||
size_t size, store_address_t* storeId) {
|
size_t size, store_address_t* storeId) {
|
||||||
MutexHelper mutexHelper(mutex,MutexIF::BLOCKING);
|
MutexHelper mutexHelper(mutex,MutexIF::WAITING, mutexTimeoutMs);
|
||||||
ReturnValue_t status = LocalPool<NUMBER_OF_POOLS>::deleteData(buffer,
|
ReturnValue_t status = LocalPool<NUMBER_OF_POOLS>::deleteData(buffer,
|
||||||
size, storeId);
|
size, storeId);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<uint8_t NUMBER_OF_POOLS>
|
||||||
|
inline void PoolManager<NUMBER_OF_POOLS>::setMutexTimeout(
|
||||||
|
uint32_t mutexTimeoutMs) {
|
||||||
|
this->mutexTimeout = mutexTimeoutMs;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* FRAMEWORK_STORAGEMANAGER_POOLMANAGER_TPP_ */
|
#endif /* FRAMEWORK_STORAGEMANAGER_POOLMANAGER_TPP_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user