From 6062420d9be2b9156d10d77b994c2a4459771244 Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 26 Sep 2017 22:12:41 +0200 Subject: [PATCH] Only print pipe write errors once --- source/utils/CarlaPipeUtils.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/source/utils/CarlaPipeUtils.cpp b/source/utils/CarlaPipeUtils.cpp index 2c67c6f72..0a8ad0a9b 100644 --- a/source/utils/CarlaPipeUtils.cpp +++ b/source/utils/CarlaPipeUtils.cpp @@ -446,6 +446,9 @@ struct CarlaPipeCommon::PrivateData { // read functions must only be called in context of idlePipe() bool isReading; + // print error only once + bool lastMessageFailed; + // common write lock CarlaMutex writeLock; @@ -462,6 +465,7 @@ struct CarlaPipeCommon::PrivateData { pipeRecv(INVALID_PIPE_VALUE), pipeSend(INVALID_PIPE_VALUE), isReading(false), + lastMessageFailed(false), writeLock(), tmpBuf(), tmpStr() @@ -1040,10 +1044,20 @@ bool CarlaPipeCommon::_writeMsgBuffer(const char* const msg, const std::size_t s } CARLA_SAFE_EXCEPTION_RETURN("CarlaPipeCommon::writeMsgBuffer", false); if (ret == static_cast(size)) + { + if (pData->lastMessageFailed) + pData->lastMessageFailed = false; return true; + } + + if (! pData->lastMessageFailed) + { + pData->lastMessageFailed = true; + fprintf(stderr, + "CarlaPipeCommon::_writeMsgBuffer(..., " P_SIZE ") - failed with " P_SSIZE ", message was:\n%s", + size, ret, msg); + } - fprintf(stderr, "CarlaPipeCommon::_writeMsgBuffer(..., " P_SIZE ") - failed with " P_SSIZE ". Message was:\n%s", - size, ret, msg); return false; }