summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-11-28 18:49:39 +0100
committerCarl Hetherington <cth@carlh.net>2024-11-29 23:31:41 +0100
commit4b3900797e0a484df2cb8c8a71f71a5ccaca6409 (patch)
tree11d96c96f77dff4b44cf029245ae4ff8f0b6588d /src
parentaed3ce82ce885b81f76f818afdab44d39f0634e1 (diff)
Count errors in Grok threads.
Diffstat (limited to 'src')
-rw-r--r--src/lib/grok_j2k_encoder_thread.cc2
-rw-r--r--src/lib/grok_j2k_encoder_thread.h5
2 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/grok_j2k_encoder_thread.cc b/src/lib/grok_j2k_encoder_thread.cc
index f8bfddf58..6975d9221 100644
--- a/src/lib/grok_j2k_encoder_thread.cc
+++ b/src/lib/grok_j2k_encoder_thread.cc
@@ -39,6 +39,7 @@ using std::shared_ptr;
GrokJ2KEncoderThread::GrokJ2KEncoderThread(J2KEncoder& encoder, grk_plugin::GrokContext* context)
: J2KEncoderThread(encoder)
, _context(context)
+ , _errors(0)
{
}
@@ -55,6 +56,7 @@ try
dcp::ScopeGuard frame_guard([this, &frame]() {
LOG_ERROR("Failed to schedule encode of %1 using grok", frame.index());
+ _errors++;
_encoder.retry(frame);
});
diff --git a/src/lib/grok_j2k_encoder_thread.h b/src/lib/grok_j2k_encoder_thread.h
index 5301e1670..b9375f23a 100644
--- a/src/lib/grok_j2k_encoder_thread.h
+++ b/src/lib/grok_j2k_encoder_thread.h
@@ -35,7 +35,12 @@ public:
void run() override;
+ int errors() const {
+ return _errors.load();
+ }
+
private:
grk_plugin::GrokContext* _context;
+ std::atomic<int> _errors;
};