Skip to content

Commit

Permalink
Merge pull request #129 from bitshares/quit-cli
Browse files Browse the repository at this point in the history
Set `cli_quitting` to true in cli::cancel()
  • Loading branch information
abitmore authored May 13, 2019
2 parents 869ad45 + 30ea9b4 commit 7e612be
Showing 1 changed file with 25 additions and 24 deletions.
49 changes: 25 additions & 24 deletions src/rpc/cli.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,29 +54,6 @@ void cli::send_notice( uint64_t callback_id, variants args /* = variants() */ )
FC_ASSERT(false);
}

void cli::stop()
{
cancel();
_run_complete.wait();
}

void cli::cancel()
{
_run_complete.cancel();
#ifdef HAVE_EDITLINE
if( _getline_thread )
{
_getline_thread->signal(SIGINT);
_getline_thread = nullptr;
}
#endif
}

void cli::wait()
{
_run_complete.wait();
}

void cli::format_result( const string& method, std::function<string(variant,const variants&)> formatter)
{
_result_formatters[method] = formatter;
Expand Down Expand Up @@ -267,7 +244,7 @@ static int interruptible_getc(void)
if( r == -1 && errno == EINTR )
cli_quitting = true;

return r == 1 ? c : EOF;
return r == 1 && !cli_quitting ? c : EOF;
}

void cli::start()
Expand All @@ -292,6 +269,30 @@ void cli::start()
_run_complete = fc::async( [this](){ run(); } );
}

void cli::cancel()
{
_run_complete.cancel();
#ifdef HAVE_EDITLINE
cli_quitting = true;
if( _getline_thread )
{
_getline_thread->signal(SIGINT);
_getline_thread = nullptr;
}
#endif
}

void cli::stop()
{
cancel();
_run_complete.wait();
}

void cli::wait()
{
_run_complete.wait();
}

/***
* @brief Read input from the user
* @param prompt the prompt to display
Expand Down

0 comments on commit 7e612be

Please sign in to comment.