icinga2/lib/icinga/checkresult.hpp
Johannes Schmidt 503e23e723 Freeze perfdata arrays and remove locks in code using them
Since perfdata is set once when a check result is created and
never changed again, locking this is unnecessary. This avoids
components unnecessarily waiting on each other when processing
perfdata.

This fixes the locking cascade observed sometimes when the perfdata
writer work queue blocks, where it extends to a lock on the entire
check result eventually, affecting even more components.
2026-06-17 15:15:46 +02:00

30 lines
620 B
C++

// SPDX-FileCopyrightText: 2012 Icinga GmbH <https://icinga.com>
// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef CHECKRESULT_H
#define CHECKRESULT_H
#include "icinga/i2-icinga.hpp"
#include "icinga/checkresult-ti.hpp"
namespace icinga
{
/**
* A check result.
*
* @ingroup icinga
*/
class CheckResult final : public ObjectImpl<CheckResult>
{
public:
DECLARE_OBJECT(CheckResult);
double CalculateExecutionTime() const;
double CalculateLatency() const;
void SetPerformanceData(const Array::Ptr& value, bool suppress_events = false, const Value& cookie = Empty) override;
};
}
#endif /* CHECKRESULT_H */