281 |
281 |
282 srvctrl_shutdown(); |
282 srvctrl_shutdown(); |
283 } |
283 } |
284 |
284 |
285 void webserver_end() { |
285 void webserver_end() { |
|
286 cfgmgr_shutdown(); |
|
287 shutdown_threadpools(60); |
|
288 |
|
289 shutdown_eventhandlers_wait(); // TODO: timeout |
|
290 |
286 // execute restart callbacks |
291 // execute restart callbacks |
287 RestartCallback *re = atrestart; |
292 RestartCallback *re = atrestart; |
288 while(re) { |
293 while(re) { |
289 re->func(re->data); |
294 re->func(re->data); |
290 re = re->next; |
295 re = re->next; |
291 } |
296 } |
292 |
|
293 cfgmgr_shutdown(); |
|
294 shutdown_threadpools(60); |
|
295 |
|
296 shutdown_eventhandlers_wait(); |
|
297 |
297 |
298 webserver_destroy(); |
298 webserver_destroy(); |
299 } |
299 } |
300 |
300 |
301 int webserver_reconfig() { |
301 int webserver_reconfig() { |