mirror of
https://github.com/overte-org/overte.git
synced 2025-04-11 13:42:38 +02:00
Handle one-time messages outside LogHandler class
Also change to std::call_once for the file-scope message IDs.
This commit is contained in:
parent
ce5f6da6ca
commit
d05f0600d4
4 changed files with 19 additions and 49 deletions
|
@ -1284,10 +1284,10 @@ void DomainServer::processRequestAssignmentPacket(QSharedPointer<ReceivedMessage
|
|||
|
||||
const qint64 NOISY_MESSAGE_INTERVAL_MSECS = 5 * 1000;
|
||||
|
||||
if (requestAssignment.getType() != Assignment::AgentType
|
||||
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS) {
|
||||
static QString repeatedMessage = LogHandler::getInstance().addOnlyOnceMessageRegex
|
||||
("Received a request for assignment type [^ ]+ from [^ ]+");
|
||||
static bool printedAssignmentTypeMessage = false;
|
||||
if (!printedAssignmentTypeMessage && (requestAssignment.getType() != Assignment::AgentType
|
||||
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS)) {
|
||||
printedAssignmentTypeMessage = true;
|
||||
qDebug() << "Received a request for assignment type" << requestAssignment.getType()
|
||||
<< "from" << message->getSenderSockAddr();
|
||||
noisyMessageTimer.restart();
|
||||
|
@ -1324,10 +1324,10 @@ void DomainServer::processRequestAssignmentPacket(QSharedPointer<ReceivedMessage
|
|||
_gatekeeper.addPendingAssignedNode(uniqueAssignment.getUUID(), assignmentToDeploy->getUUID(),
|
||||
requestAssignment.getWalletUUID(), requestAssignment.getNodeVersion());
|
||||
} else {
|
||||
if (requestAssignment.getType() != Assignment::AgentType
|
||||
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS) {
|
||||
static QString repeatedMessage = LogHandler::getInstance().addOnlyOnceMessageRegex
|
||||
("Unable to fulfill assignment request of type [^ ]+ from [^ ]+");
|
||||
static bool printedAssignmentRequestMessage = false;
|
||||
if (!printedAssignmentRequestMessage && (requestAssignment.getType() != Assignment::AgentType
|
||||
|| noisyMessageTimer.elapsed() > NOISY_MESSAGE_INTERVAL_MSECS)) {
|
||||
printedAssignmentRequestMessage = true;
|
||||
qDebug() << "Unable to fulfill assignment request of type" << requestAssignment.getType()
|
||||
<< "from" << message->getSenderSockAddr();
|
||||
noisyMessageTimer.restart();
|
||||
|
@ -1576,10 +1576,12 @@ void DomainServer::sendICEServerAddressToMetaverseAPI() {
|
|||
callbackParameters.jsonCallbackReceiver = this;
|
||||
callbackParameters.jsonCallbackMethod = "handleSuccessfulICEServerAddressUpdate";
|
||||
|
||||
static QString repeatedMessage = LogHandler::getInstance().addOnlyOnceMessageRegex
|
||||
("Updating ice-server address in High Fidelity Metaverse API to [^ \n]+");
|
||||
qDebug() << "Updating ice-server address in High Fidelity Metaverse API to"
|
||||
<< (_iceServerSocket.isNull() ? "" : _iceServerSocket.getAddress().toString());
|
||||
static bool printedIceServerMessage = false;
|
||||
if (!printedIceServerMessage) {
|
||||
printedIceServerMessage = true;
|
||||
qDebug() << "Updating ice-server address in High Fidelity Metaverse API to"
|
||||
<< (_iceServerSocket.isNull() ? "" : _iceServerSocket.getAddress().toString());
|
||||
}
|
||||
|
||||
static const QString DOMAIN_ICE_ADDRESS_UPDATE = "/api/v1/domains/%1/ice_server_address";
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ void render::renderItems(const RenderContextPointer& renderContext, const ItemBo
|
|||
|
||||
namespace {
|
||||
int repeatedInvalidKeyMessageID = 0;
|
||||
std::atomic<int> messageIDInit = 0;
|
||||
std::once_flag messageIDFlag;
|
||||
}
|
||||
|
||||
void renderShape(RenderArgs* args, const ShapePlumberPointer& shapeContext, const Item& item, const ShapeKey& globalKey) {
|
||||
|
@ -60,9 +60,8 @@ void renderShape(RenderArgs* args, const ShapePlumberPointer& shapeContext, cons
|
|||
} else if (key.hasOwnPipeline()) {
|
||||
item.render(args);
|
||||
} else {
|
||||
if (++messageIDInit == 1) {
|
||||
repeatedInvalidKeyMessageID = LogHandler::getInstance().newRepeatedMessageID();
|
||||
}
|
||||
std::call_once(messageIDFlag, [](int& id) { id = LogHandler::getInstance().newRepeatedMessageID(); },
|
||||
repeatedInvalidKeyMessageID);
|
||||
HIFI_FCDEBUG_ID(renderlogging(), repeatedInvalidKeyMessageID, "Item could not be rendered with invalid key" << key);
|
||||
}
|
||||
args->_itemShapeKey = 0;
|
||||
|
@ -114,9 +113,8 @@ void render::renderStateSortShapes(const RenderContextPointer& renderContext,
|
|||
} else if (key.hasOwnPipeline()) {
|
||||
ownPipelineBucket.push_back( std::make_tuple(item, key) );
|
||||
} else {
|
||||
if (++messageIDInit == 1) {
|
||||
repeatedInvalidKeyMessageID = LogHandler::getInstance().newRepeatedMessageID();
|
||||
}
|
||||
std::call_once(messageIDFlag, [](int& id) { id = LogHandler::getInstance().newRepeatedMessageID(); },
|
||||
repeatedInvalidKeyMessageID);
|
||||
HIFI_FCDEBUG_ID(renderlogging(), repeatedInvalidKeyMessageID, "Item could not be rendered with invalid key" << key);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -114,21 +114,6 @@ QString LogHandler::printMessage(LogMsgType type, const QMessageLogContext& cont
|
|||
}
|
||||
QMutexLocker lock(&_mutex);
|
||||
|
||||
if (type == LogDebug) {
|
||||
// see if this message is one we should only print once
|
||||
for (auto& onceOnly : _onetimeMessages) {
|
||||
if (onceOnly.regexp.indexIn(message) != -1) {
|
||||
if (onceOnly.messageCount++ == 0) {
|
||||
// we have a match and haven't yet printed this message.
|
||||
break;
|
||||
} else {
|
||||
// We've already printed this message, don't print it again.
|
||||
return QString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// log prefix is in the following format
|
||||
// [TIMESTAMP] [DEBUG] [PID] [TID] [TARGET] logged string
|
||||
|
||||
|
@ -184,14 +169,6 @@ void LogHandler::setupRepeatedMessageFlusher() {
|
|||
});
|
||||
}
|
||||
|
||||
const QString& LogHandler::addOnlyOnceMessageRegex(const QString& regexString) {
|
||||
QMutexLocker lock(&_mutex);
|
||||
OnceOnlyMessage onetimeMessage;
|
||||
onetimeMessage.regexp = QRegExp(regexString);
|
||||
_onetimeMessages.push_back(onetimeMessage);
|
||||
return regexString;
|
||||
}
|
||||
|
||||
int LogHandler::newRepeatedMessageID() {
|
||||
QMutexLocker lock(&_mutex);
|
||||
int newMessageId = _currentMessageID;
|
||||
|
|
|
@ -51,7 +51,6 @@ public:
|
|||
/// prints various process, message type, and time information
|
||||
static void verboseMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString &message);
|
||||
|
||||
const QString& addOnlyOnceMessageRegex(const QString& regexString);
|
||||
int newRepeatedMessageID();
|
||||
void printRepeatedMessage(int messageID, LogMsgType type, const QMessageLogContext& context, const QString &message);
|
||||
|
||||
|
@ -69,12 +68,6 @@ private:
|
|||
bool _shouldOutputThreadID { false };
|
||||
bool _shouldDisplayMilliseconds { false };
|
||||
|
||||
struct OnceOnlyMessage {
|
||||
QRegExp regexp;
|
||||
int messageCount { 0 };
|
||||
};
|
||||
std::vector<OnceOnlyMessage> _onetimeMessages;
|
||||
|
||||
int _currentMessageID { 0 };
|
||||
struct RepeatedMessageRecord {
|
||||
int repeatCount;
|
||||
|
|
Loading…
Reference in a new issue