@@ -125,9 +125,9 @@ noexcept
125125{
126126 const ctx::uninterruptible::nothrow ui;
127127
128- interrupt ();
129- close ();
130- wait ();
128+ terminate_all ();
129+ close_all ();
130+ wait_all ();
131131
132132 log::debug
133133 {
@@ -137,24 +137,6 @@ noexcept
137137 assert (client::map.empty ());
138138}
139139
140- void
141- ircd::client::init::interrupt ()
142- {
143- interrupt_all ();
144- }
145-
146- void
147- ircd::client::init::close ()
148- {
149- close_all ();
150- }
151-
152- void
153- ircd::client::init::wait ()
154- {
155- wait_all ();
156- }
157-
158140//
159141// util
160142//
@@ -166,19 +148,35 @@ ircd::client::spawn()
166148}
167149
168150void
169- ircd::client::interrupt_all ()
151+ ircd::client::wait_all ()
170152{
171153 if (pool.active ())
172- log::warning
154+ log::dwarning
173155 {
174- " Terminating %zu active of %zu client request contexts; %zu pending; %zu queued" ,
156+ " Waiting on %zu active of %zu client request contexts; %zu pending; %zu queued. " ,
175157 pool.active (),
176158 pool.size (),
177159 pool.pending (),
178160 pool.queued ()
179161 };
180162
181- pool.terminate ();
163+ while (!client::map.empty ())
164+ if (!dock.wait_for (seconds (2 )) && !client::map.empty ())
165+ log::warning
166+ {
167+ " Waiting for %zu clients to close..." , client::map.size ()
168+ };
169+
170+ log::debug
171+ {
172+ " Joining %zu active of %zu client request contexts; %zu pending; %zu queued" ,
173+ pool.active (),
174+ pool.size (),
175+ pool.pending (),
176+ pool.queued ()
177+ };
178+
179+ pool.join ();
182180}
183181
184182void
@@ -211,35 +209,35 @@ ircd::client::close_all()
211209}
212210
213211void
214- ircd::client::wait_all ()
212+ ircd::client::interrupt_all ()
215213{
216214 if (pool.active ())
217- log::dwarning
215+ log::warning
218216 {
219- " Waiting on %zu active of %zu client request contexts; %zu pending; %zu queued. " ,
217+ " Interrupting %zu active of %zu client request contexts; %zu pending; %zu queued" ,
220218 pool.active (),
221219 pool.size (),
222220 pool.pending (),
223221 pool.queued ()
224222 };
225223
226- while (!client::map.empty ())
227- if (!dock.wait_for (seconds (2 )) && !client::map.empty ())
228- log::warning
229- {
230- " Waiting for %zu clients to close..." , client::map.size ()
231- };
224+ pool.interrupt ();
225+ }
232226
233- log::debug
234- {
235- " Joining %zu active of %zu client request contexts; %zu pending; %zu queued" ,
236- pool.active (),
237- pool.size (),
238- pool.pending (),
239- pool.queued ()
240- };
227+ void
228+ ircd::client::terminate_all ()
229+ {
230+ if (pool.active ())
231+ log::warning
232+ {
233+ " Terminating %zu active of %zu client request contexts; %zu pending; %zu queued" ,
234+ pool.active (),
235+ pool.size (),
236+ pool.pending (),
237+ pool.queued ()
238+ };
241239
242- pool.join ();
240+ pool.terminate ();
243241}
244242
245243void
0 commit comments