Skip to content

Commit 2628dec

Browse files
authored
Move autoreloader to own tokio task (#148)
1 parent 3bc4f93 commit 2628dec

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

src/main.rs

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,29 @@ async fn main() {
154154

155155
info!("Config autoreloader: {}", config.general.autoreload);
156156

157+
let mut autoreload_interval = tokio::time::interval(tokio::time::Duration::from_millis(15_000));
158+
let autoreload_client_server_map = client_server_map.clone();
159+
tokio::task::spawn(async move {
160+
loop {
161+
autoreload_interval.tick().await;
162+
if config.general.autoreload {
163+
info!("Automatically reloading config");
164+
165+
match reload_config(autoreload_client_server_map.clone()).await {
166+
Ok(changed) => {
167+
if changed {
168+
get_config().show()
169+
}
170+
}
171+
Err(_) => (),
172+
};
173+
}
174+
}
175+
});
176+
157177
let mut term_signal = unix_signal(SignalKind::terminate()).unwrap();
158178
let mut interrupt_signal = unix_signal(SignalKind::interrupt()).unwrap();
159179
let mut sighup_signal = unix_signal(SignalKind::hangup()).unwrap();
160-
let mut autoreload_interval = tokio::time::interval(tokio::time::Duration::from_millis(15_000));
161180
let (shutdown_tx, _) = broadcast::channel::<()>(1);
162181
let (drain_tx, mut drain_rx) = mpsc::channel::<i8>(2048);
163182
let (exit_tx, mut exit_rx) = mpsc::channel::<()>(1);
@@ -182,21 +201,6 @@ async fn main() {
182201
get_config().show();
183202
},
184203

185-
_ = autoreload_interval.tick() => {
186-
if config.general.autoreload {
187-
info!("Automatically reloading config");
188-
189-
match reload_config(client_server_map.clone()).await {
190-
Ok(changed) => {
191-
if changed {
192-
get_config().show()
193-
}
194-
}
195-
Err(_) => (),
196-
};
197-
}
198-
},
199-
200204
// Initiate graceful shutdown sequence on sig int
201205
_ = interrupt_signal.recv() => {
202206
info!("Got SIGINT, waiting for client connection drain now");

0 commit comments

Comments
 (0)