2525#include < tbox/base/log.h>
2626#include < tbox/util/split_cmdline.h>
2727#include < tbox/util/string.h>
28+ #include < tbox/event/loop.h>
2829
2930#include " session_context.h"
3031#include " dir_node.h"
@@ -180,23 +181,28 @@ void Terminal::Impl::executeLsCmd(SessionContext *s, const Args &args)
180181 s->wp_conn ->send (s->token , ss.str ());
181182}
182183
183- void Terminal::Impl::executeHistoryCmd (SessionContext *s, const Args &args )
184+ void Terminal::Impl::executeHistoryCmd (SessionContext *s, const Args &)
184185{
185186 stringstream ss;
186187 for (size_t i = 0 ; i < s->history .size (); ++i) {
187188 const auto &cmd = s->history .at (i);
188189 ss << setw (2 ) << i << " " << cmd << " \r\n " ;
189190 }
190191 s->wp_conn ->send (s->token , ss.str ());
191- (void )args;
192192}
193193
194- void Terminal::Impl::executeExitCmd (SessionContext *s, const Args &args )
194+ void Terminal::Impl::executeExitCmd (SessionContext *s, const Args &)
195195{
196196 if (!(s->options & kQuietMode ))
197197 s->wp_conn ->send (s->token , " Bye!\r\n " );
198- s->wp_conn ->endSession (s->token );
199- (void )args;
198+
199+ wp_loop_->runNext (
200+ [this , s] {
201+ s->wp_conn ->endSession (s->token );
202+ deleteSession (s->token );
203+ },
204+ __func__
205+ );
200206}
201207
202208void Terminal::Impl::executeTreeCmd (SessionContext *s, const Args &args)
@@ -309,7 +315,7 @@ void Terminal::Impl::executeTreeCmd(SessionContext *s, const Args &args)
309315 s->wp_conn ->send (s->token , ss.str ());
310316}
311317
312- void Terminal::Impl::executePwdCmd (SessionContext *s, const Args &args )
318+ void Terminal::Impl::executePwdCmd (SessionContext *s, const Args &)
313319{
314320 stringstream ss;
315321 ss << ' /' ;
@@ -320,7 +326,6 @@ void Terminal::Impl::executePwdCmd(SessionContext *s, const Args &args)
320326 }
321327 ss << " \r\n " ;
322328 s->wp_conn ->send (s->token , ss.str ());
323- (void )args;
324329}
325330
326331bool Terminal::Impl::executeRunHistoryCmd (SessionContext *s, const Args &args)
0 commit comments