On Sun, Feb 7, 2021 at 7:35 AM Jiri Olsa <jo...@redhat.com> wrote: > > On Sat, Feb 06, 2021 at 05:05:04PM +0900, Namhyung Kim wrote: > > On Fri, Feb 5, 2021 at 9:56 PM Jiri Olsa <jo...@redhat.com> wrote: > > > > > > On Fri, Feb 05, 2021 at 09:14:54PM +0900, Namhyung Kim wrote: > > > > On Sun, Jan 31, 2021 at 8:49 AM Jiri Olsa <jo...@kernel.org> wrote: > > > > [SNIP] > > > > > @@ -263,9 +605,16 @@ static int __cmd_start(struct daemon *daemon, > > > > > struct option parent_options[], > > > > > signal(SIGTERM, sig_handler); > > > > > > > > > > while (!done && !err) { > > > > > - if (fdarray__poll(&fda, -1)) { > > > > > + err = daemon__reconfig(daemon); > > > > > > > > I think it's confusing since you put the reconfig function here. > > > > What not split normal and reconfig passes? > > > > > > hum, not sure what's confusing in here? I've been known to > > > produce confusing code, but this one seems clear to me > > > > Maybe it's because of the name. I thought reconfig is a > > special case when it detects some change. But you call > > it in the loop unconditionally. > > > > > > > > > > > > > I mean something like below > > > > > > > > __cmd_start() > > > > { > > > > setup_server_config(); > > > > daemon__run(); > > > > > > what's daemon__run? the daemon operates in the while loop below > > > > I thought about starting the sessions in the config. > > > > > > > > > > > > > while (!done && !err) { > > > > ... > > > > if (reconfig) { > > > > daemon__kill(); > > > > > > you don't kill daemon for each reconfig change, > > > we detect changed sessions and kill/restart only them > > > > Yep, we can make it that way. > > > > > > > > > setup_server_config(); > > > > daemon__reconfig(); > > > > } > > > > } > > > > > > > > > so basically the current workflow is: > > > > > > setup_server_config <--- > > > reads config file, prepares session objects > > > > > > while (!done) { > > > daemon__reconfig <--- > > > check session objects states and run/stop them > > > > Hmm.. then how about rename it to daemon__handle_state() > > or daemon__do_loop() or something? > > well it handles reconfig, so I don't think that there's > better name than daemon__reconfig ;-) > > apart from handle_server_socket, all the other functions > we call after poll can change session state, so we need > to 'reconfig' sessions each time we do a loop
OK then. Thanks for the explanation! Thanks, Namhyung