mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-03-03 10:46:58 +01:00
lightningd/subd.c: Return NULL from subd_shutdown.
And set pointers to shut down daemons as NULL in lightningd.
This commit is contained in:
parent
11412435ce
commit
37440e9447
3 changed files with 11 additions and 7 deletions
|
@ -408,9 +408,9 @@ static void shutdown_subdaemons(struct lightningd *ld)
|
|||
close(ld->hsm_fd);
|
||||
/*~ The three "global" daemons, which we shutdown explicitly: we
|
||||
* give them 10 seconds to exit gracefully before killing them. */
|
||||
subd_shutdown(ld->connectd, 10);
|
||||
subd_shutdown(ld->gossip, 10);
|
||||
subd_shutdown(ld->hsm, 10);
|
||||
ld->connectd = subd_shutdown(ld->connectd, 10);
|
||||
ld->gossip = subd_shutdown(ld->gossip, 10);
|
||||
ld->hsm = subd_shutdown(ld->hsm, 10);
|
||||
|
||||
/* Now we free all the HTLCs */
|
||||
free_htlcs(ld, NULL);
|
||||
|
|
|
@ -748,7 +748,7 @@ void subd_req_(const tal_t *ctx,
|
|||
add_req(ctx, sd, type, num_fds_in, replycb, replycb_data);
|
||||
}
|
||||
|
||||
void subd_shutdown(struct subd *sd, unsigned int seconds)
|
||||
struct subd *subd_shutdown(struct subd *sd, unsigned int seconds)
|
||||
{
|
||||
log_debug(sd->log, "Shutting down");
|
||||
|
||||
|
@ -761,7 +761,7 @@ void subd_shutdown(struct subd *sd, unsigned int seconds)
|
|||
/* Wait for a while. */
|
||||
while (seconds) {
|
||||
if (waitpid(sd->pid, NULL, WNOHANG) > 0) {
|
||||
return;
|
||||
return (struct subd*) tal_free(sd);
|
||||
}
|
||||
sleep(1);
|
||||
seconds--;
|
||||
|
@ -770,7 +770,7 @@ void subd_shutdown(struct subd *sd, unsigned int seconds)
|
|||
/* Didn't die? This will kill it harder */
|
||||
sd->must_not_exit = false;
|
||||
destroy_subd(sd);
|
||||
tal_free(sd);
|
||||
return (struct subd*) tal_free(sd);
|
||||
}
|
||||
|
||||
void subd_release_channel(struct subd *owner, void *channel)
|
||||
|
|
|
@ -198,8 +198,12 @@ void subd_release_channel(struct subd *owner, void *channel);
|
|||
*
|
||||
* This closes the fd to the subdaemon, and gives it a little while to exit.
|
||||
* The @finished callback will never be called.
|
||||
*
|
||||
* Return value is null, so pattern should be:
|
||||
*
|
||||
* sd = subd_shutdown(sd, 10);
|
||||
*/
|
||||
void subd_shutdown(struct subd *subd, unsigned int seconds);
|
||||
struct subd *subd_shutdown(struct subd *subd, unsigned int seconds);
|
||||
|
||||
/* Ugly helper to get full pathname of the current binary. */
|
||||
const char *find_my_abspath(const tal_t *ctx, const char *argv0);
|
||||
|
|
Loading…
Add table
Reference in a new issue