From d1c59a59bc2097e53ee6ec3aed9798c842580ee5 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Tue, 19 Sep 2023 10:13:36 -0400 Subject: [PATCH] fix ocurl: have ticker thread stop when work queue is closed --- src/client-ocurl/opentelemetry_client_ocurl.ml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/client-ocurl/opentelemetry_client_ocurl.ml b/src/client-ocurl/opentelemetry_client_ocurl.ml index 812b4f6b..815db52a 100644 --- a/src/client-ocurl/opentelemetry_client_ocurl.ml +++ b/src/client-ocurl/opentelemetry_client_ocurl.ml @@ -435,10 +435,12 @@ let mk_backend ~stop ~config () : (module Collector.BACKEND) = let setup_ticker_thread ~stop ~sleep_ms (module B : Collector.BACKEND) () = let sleep_s = float sleep_ms /. 1000. in let tick_loop () = - while not @@ Atomic.get stop do - Thread.delay sleep_s; - B.tick () - done + try + while not @@ Atomic.get stop do + Thread.delay sleep_s; + B.tick () + done + with B_queue.Closed -> () in start_bg_thread tick_loop