@@ -154,10 +154,29 @@ async fn main() {
154
154
155
155
info ! ( "Config autoreloader: {}" , config. general. autoreload) ;
156
156
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
+
157
177
let mut term_signal = unix_signal ( SignalKind :: terminate ( ) ) . unwrap ( ) ;
158
178
let mut interrupt_signal = unix_signal ( SignalKind :: interrupt ( ) ) . unwrap ( ) ;
159
179
let mut sighup_signal = unix_signal ( SignalKind :: hangup ( ) ) . unwrap ( ) ;
160
- let mut autoreload_interval = tokio:: time:: interval ( tokio:: time:: Duration :: from_millis ( 15_000 ) ) ;
161
180
let ( shutdown_tx, _) = broadcast:: channel :: < ( ) > ( 1 ) ;
162
181
let ( drain_tx, mut drain_rx) = mpsc:: channel :: < i8 > ( 2048 ) ;
163
182
let ( exit_tx, mut exit_rx) = mpsc:: channel :: < ( ) > ( 1 ) ;
@@ -182,21 +201,6 @@ async fn main() {
182
201
get_config( ) . show( ) ;
183
202
} ,
184
203
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
-
200
204
// Initiate graceful shutdown sequence on sig int
201
205
_ = interrupt_signal. recv( ) => {
202
206
info!( "Got SIGINT, waiting for client connection drain now" ) ;
0 commit comments