Count errors in Grok threads.
authorCarl Hetherington <cth@carlh.net>
Thu, 28 Nov 2024 17:49:39 +0000 (18:49 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 29 Nov 2024 22:31:41 +0000 (23:31 +0100)
src/lib/grok_j2k_encoder_thread.cc
src/lib/grok_j2k_encoder_thread.h

index f8bfddf58dc0ac3ac0f167acd276533dbf4aa8d1..6975d9221bb601735e655d0e182374855f04fbc2 100644 (file)
@@ -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);
                });
 
index 5301e167034d500e909263f98ad2c7e7587a4d62..b9375f23af8b4342265dab29c9af388f2058dd76 100644 (file)
@@ -35,7 +35,12 @@ public:
 
        void run() override;
 
+       int errors() const {
+               return _errors.load();
+       }
+
 private:
        grk_plugin::GrokContext* _context;
+       std::atomic<int> _errors;
 };