Fixed crash on shutdown of RetroShare, when the cache loading is running.

Now the p3distrib threads are stopped before the instance of AuthGPG is deleted.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4119 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2011-04-03 16:20:47 +00:00
parent 372d837af1
commit f9c896c3ac
5 changed files with 15 additions and 3 deletions

View File

@ -180,5 +180,15 @@ void RsServer::rsGlobalShutDown()
join();
ftserver->StopThreads();
// stop the p3distrib threads
#ifndef MINIMAL_LIBRS
mForums->join();
mChannels->join();
#ifdef RS_USE_BLOGS
mBlogs->join();
#endif
#endif // MINIMAL_LIBRS
AuthGPGExit();
}

View File

@ -53,6 +53,7 @@ RsServer::RsServer(RsIface &i, NotifyBase &callback)
chatSrv = NULL;
mStatusSrv = NULL;
mChannels = NULL;
mForums = NULL;
/* caches (that need ticking) */
mRanking = NULL;

View File

@ -45,7 +45,7 @@
#include "services/p3blogs.h"
#include "services/p3statusservice.h"
#include "services/p3channels.h"
#include "services/p3forums.h"
/* The Main Interface Class - for controlling the server */
@ -163,6 +163,7 @@ class RsServer: public RsControl, public RsThread
p3ChatService *chatSrv;
p3StatusService *mStatusSrv;
p3Channels *mChannels;
p3Forums *mForums;
/* caches (that need ticking) */
p3Ranking *mRanking;

View File

@ -1957,7 +1957,7 @@ int RsServer::StartupRetroShare()
CachePair cp(mRanking, mRanking, CacheId(RS_SERVICE_TYPE_RANK, 0));
mCacheStrapper -> addCachePair(cp); /* end of declaration */
p3Forums *mForums = new p3Forums(RS_SERVICE_TYPE_FORUM,
mForums = new p3Forums(RS_SERVICE_TYPE_FORUM,
mCacheStrapper, mCacheTransfer,
localcachedir, remotecachedir, forumdir);

View File

@ -862,7 +862,7 @@ void p3GroupDistrib::run() /* called once the thread is started */
int printed = 0;
#endif
CacheData cache;
while(1)
while(isRunning())
{
/* */