@@ -352,18 +352,24 @@ log_reader_update_watches(LogReader *self)
352
352
static inline gboolean
353
353
log_reader_work_in_progress (LogReader * self )
354
354
{
355
- return g_atomic_counter_get (& self -> io_work_in_progress );
355
+ main_loop_assert_main_thread ();
356
+
357
+ return self -> io_job .working ;
356
358
}
357
359
358
360
static inline void
359
361
log_reader_set_work_in_progress (LogReader * self , gboolean state )
360
362
{
361
- g_atomic_counter_set (& self -> io_work_in_progress , state );
363
+ if ((self -> options -> flags & LR_THREADED ) == 0 )
364
+ {
365
+ main_loop_assert_main_thread ();
366
+ self -> io_job .working = state ;
367
+ }
362
368
}
363
369
364
370
/* NOTE: See file-reader, file_reader_notify_method() why this is needed */
365
371
inline void
366
- log_reader_trigger_one_read (LogReader * self )
372
+ log_reader_trigger_one_check (LogReader * self )
367
373
{
368
374
if (FALSE == log_reader_work_in_progress (self ))
369
375
log_reader_force_check_in_next_poll (self );
@@ -388,6 +394,8 @@ log_reader_work_finished(void *s, gpointer arg)
388
394
{
389
395
LogReader * self = (LogReader * ) s ;
390
396
397
+ log_reader_set_work_in_progress (self , FALSE);
398
+
391
399
if (self -> pending_close )
392
400
{
393
401
/* pending proto is only set in the main thread, so no need to
@@ -425,8 +433,6 @@ log_reader_work_finished(void *s, gpointer arg)
425
433
log_proto_server_reset_error (self -> proto );
426
434
log_reader_update_watches (self );
427
435
}
428
-
429
- log_reader_set_work_in_progress (self , FALSE);
430
436
}
431
437
432
438
/*****************************************************************************
0 commit comments