Skip to content

Commit fd30647

Browse files
committed
scheduler: Dispose ch_events on destroy
Signed-off-by: Hiroshi Hatake <hiroshi@chronosphere.io>
1 parent 9bf9c1b commit fd30647

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

include/fluent-bit/flb_scheduler.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ struct flb_sched {
135135
* case is the use of timers running under a co-routine that needs to
136136
* be handled in active event loop.
137137
*/
138+
int ch_events_initialized;
138139
flb_pipefd_t ch_events[2];
139140
};
140141

src/flb_scheduler.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,7 @@ struct flb_sched *flb_sched_create(struct flb_config *config,
796796
flb_sched_destroy(sched);
797797
return NULL;
798798
}
799+
sched->ch_events_initialized = FLB_TRUE;
799800
sched->event.type = FLB_ENGINE_EV_SCHED_CORO;
800801

801802
/*
@@ -849,6 +850,14 @@ int flb_sched_destroy(struct flb_sched *sched)
849850
c++;
850851
}
851852

853+
if (sched->ch_events_initialized == FLB_TRUE) {
854+
mk_event_channel_destroy(sched->evl,
855+
sched->ch_events[0],
856+
sched->ch_events[1],
857+
sched);
858+
sched->ch_events_initialized = FLB_FALSE;
859+
}
860+
852861
flb_free(sched);
853862
return c;
854863
}

0 commit comments

Comments
 (0)