child_wait_deinit();
}
+static
+void program_client_local_switch_ioloop(struct program_client *pclient)
+{
+ struct program_client_local *slclient =
+ (struct program_client_local *)pclient;
+
+ if (slclient->to_kill)
+ slclient->to_kill = io_loop_move_timeout(&slclient->to_kill);
+ lib_signals_reset_ioloop();
+}
+
struct program_client *
program_client_local_create(const char *bin_path,
const char *const *args,
program_client_init(&pclient->client, pool, bin_path, args, set);
pclient->client.connect = program_client_local_connect;
pclient->client.close_output = program_client_local_close_output;
+ pclient->client.switch_ioloop = program_client_local_switch_ioloop;
pclient->client.disconnect = program_client_local_disconnect;
pclient->client.destroy = program_client_local_destroy;
pclient->pid = -1;
int (*connect) (struct program_client * pclient);
int (*close_output) (struct program_client * pclient);
+ void (*switch_ioloop) (struct program_client * pclient);
void (*disconnect) (struct program_client * pclient, bool force);
void (*destroy) (struct program_client * pclient);
program_client_disconnected(pclient);
}
+static
+void program_client_remote_switch_ioloop(struct program_client *pclient ATTR_UNUSED)
+{
+}
+
struct program_client *
program_client_remote_create(const char *socket_path, const char *const *args,
const struct program_client_settings *set,
pclient->client.connect = program_client_remote_connect;
pclient->client.close_output = program_client_remote_close_output;
pclient->client.disconnect = program_client_remote_disconnect;
+ pclient->client.switch_ioloop = program_client_remote_switch_ioloop;
pclient->noreply = noreply;
return &pclient->client;
pclient->to = io_loop_move_timeout(&pclient->to);
if (pclient->io != NULL)
pclient->io = io_loop_move_io(&pclient->io);
- lib_signals_reset_ioloop();
+ pclient->switch_ioloop(pclient);
}
static