Merge pull request #33 from thunder2/pr/2437-shutdown

Pr/2437 shutdown
This commit is contained in:
csoler 2021-12-29 23:11:12 +01:00 committed by GitHub
commit 35e20222e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 3 deletions

View File

@ -141,6 +141,12 @@ public:
*/
static bool start();
/*!
* \brief stop
* Stop the Tor management threads.
*/
static void stop();
/*!
* \brief getHiddenServiceInfo
* Gets information about the hidden service setup by RS to run.

View File

@ -53,6 +53,8 @@
using namespace Tor;
static TorManager *rsTor = nullptr;
namespace Tor
{
@ -462,7 +464,7 @@ void TorManager::run()
std::this_thread::sleep_for(std::chrono::milliseconds(50));
}
d->control->shutdown();
d->control->shutdownSync();
d->process->stop();
if(rsEvents)
@ -840,6 +842,17 @@ bool RsTor::start()
return instance()->startTorManager();
}
void RsTor::stop()
{
if (rsTor) {
if (rsTor->isRunning()) {
rsTor->fullstop();
}
delete(rsTor);
rsTor= nullptr;
}
}
void RsTor::setTorDataDirectory(const std::string& dir)
{
instance()->setTorDataDirectory(dir);
@ -855,8 +868,6 @@ TorManager *RsTor::instance()
assert(getpid() == syscall(SYS_gettid));// make sure we're not in a thread
#endif
static TorManager *rsTor = nullptr;
if(rsTor == nullptr)
rsTor = new TorManager;

View File

@ -591,6 +591,10 @@ feenableexcept(FE_INVALID | FE_DIVBYZERO);
RsGxsUpdateBroadcast::cleanup();
#endif
if (is_auto_tor) {
RsTor::stop();
}
RsControl::instance()->rsGlobalShutDown();
delete(soundManager);