diff options
Diffstat (limited to 'indra/newview/llappviewer.cpp')
| -rwxr-xr-x | indra/newview/llappviewer.cpp | 122 | 
1 files changed, 23 insertions, 99 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 2898d8ca31..212627c0f7 100755 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -57,8 +57,6 @@  #include "llfocusmgr.h"  #include "llviewerjoystick.h"  #include "llallocator.h" -#include "llares.h"  -#include "llcurl.h"  #include "llcalc.h"  #include "llconversationlog.h"  #include "lldxhardware.h" @@ -230,7 +228,7 @@  #include "llmachineid.h"  #include "llmainlooprepeater.h" - +#include "llcoproceduremanager.h"  #include "llviewereventrecorder.h" @@ -760,8 +758,11 @@ void fast_exit(int rc)  {  	_exit(rc);  } + +  } +  bool LLAppViewer::init()  {	  	setupErrorHandling(mSecondInstance); @@ -830,12 +831,7 @@ bool LLAppViewer::init()  	// before consumers (LLTextureFetch).  	mAppCoreHttp.init(); -    // *NOTE:Mani - LLCurl::initClass is not thread safe.  -    // Called before threads are created. -    LLCurl::initClass(gSavedSettings.getF32("CurlRequestTimeOut"),  -						gSavedSettings.getS32("CurlMaximumNumberOfHandles"),  -						gSavedSettings.getBOOL("CurlUseMultipleThreads")); -	LL_INFOS("InitInfo") << "LLCurl initialized." << LL_ENDL ; +	LL_INFOS("InitInfo") << "LLCore::Http initialized." << LL_ENDL ;      LLMachineID::init(); @@ -905,7 +901,7 @@ bool LLAppViewer::init()  	// the libs involved in getting to a full login screen.  	//  	LL_INFOS("InitInfo") << "J2C Engine is: " << LLImageJ2C::getEngineInfo() << LL_ENDL; -	LL_INFOS("InitInfo") << "libcurl version is: " << LLCurl::getVersionString() << LL_ENDL; +	LL_INFOS("InitInfo") << "libcurl version is: " << LLCore::LLHttp::getCURLVersion() << LL_ENDL;  	/////////////////////////////////////////////////  	// OS-specific login dialogs @@ -1162,8 +1158,6 @@ bool LLAppViewer::init()  	{  	  LLNotificationsUtil::add("CorruptedProtectedDataStore");  	} -	LLHTTPClient::setCertVerifyCallback(secapiSSLCertVerifyCallback); -  	gGLActive = FALSE; @@ -1221,6 +1215,12 @@ bool LLAppViewer::init()  	LLAgentLanguage::init(); +    /// Tell the Coprocedure manager how to discover and store the pool sizes +    // what I wanted +    LLCoprocedureManager::getInstance()->setPropertyMethods( +        boost::bind(&LLControlGroup::getU32, boost::ref(gSavedSettings), _1), +        boost::bind(&LLControlGroup::declareU32, boost::ref(gSavedSettings), _1, _2, _3, LLControlVariable::PERSIST_ALWAYS)); +  	return true;  } @@ -1287,7 +1287,6 @@ static LLTrace::BlockTimerStatHandle FTM_LFS("LFS Thread");  static LLTrace::BlockTimerStatHandle FTM_PAUSE_THREADS("Pause Threads");  static LLTrace::BlockTimerStatHandle FTM_IDLE("Idle");  static LLTrace::BlockTimerStatHandle FTM_PUMP("Pump"); -static LLTrace::BlockTimerStatHandle FTM_PUMP_ARES("Ares");  static LLTrace::BlockTimerStatHandle FTM_PUMP_SERVICE("Service");  static LLTrace::BlockTimerStatHandle FTM_SERVICE_CALLBACK("Callback");  static LLTrace::BlockTimerStatHandle FTM_AGENT_AUTOPILOT("Autopilot"); @@ -1311,8 +1310,6 @@ bool LLAppViewer::mainLoop()  		// Create IO Pump to use for HTTP Requests.  		gServicePump = new LLPumpIO(gAPRPoolp); -		LLHTTPClient::setPump(*gServicePump); -		LLCurl::setCAFile(gDirUtilp->getCAFile());  		// Note: this is where gLocalSpeakerMgr and gActiveSpeakerMgr used to be instantiated. @@ -1431,26 +1428,6 @@ bool LLAppViewer::mainLoop()  					LL_RECORD_BLOCK_TIME(FTM_IDLE);  					idle(); -					if (gAres != NULL && gAres->isInitialized()) -					{ -						pingMainloopTimeout("Main:ServicePump");				 -						LL_RECORD_BLOCK_TIME(FTM_PUMP); -						{ -							LL_RECORD_BLOCK_TIME(FTM_PUMP_ARES); -							gAres->process(); -						} -						{ -							LL_RECORD_BLOCK_TIME(FTM_PUMP_SERVICE); -							// this pump is necessary to make the login screen show up -							gServicePump->pump(); - -							{ -								LL_RECORD_BLOCK_TIME(FTM_SERVICE_CALLBACK); -								gServicePump->callback(); -							} -						} -					} -					  					resumeMainloopTimeout();  				} @@ -1555,11 +1532,6 @@ bool LLAppViewer::mainLoop()  				}  				gMeshRepo.update() ; -				if(!LLCurl::getCurlThread()->update(1)) -				{ -					LLCurl::getCurlThread()->pause() ; //nothing in the curl thread. -				} -  				if(!total_work_pending) //pause texture fetching threads if nothing to process.  				{  					LLAppViewer::getTextureCache()->pause(); @@ -1800,13 +1772,14 @@ bool LLAppViewer::cleanup()  	if (gAudiop)  	{ -		// shut down the streaming audio sub-subsystem first, in case it relies on not outliving the general audio subsystem. - -		LLStreamingAudioInterface *sai = gAudiop->getStreamingAudioImpl(); +        // be sure to stop the internet stream cleanly BEFORE destroying the interface to stop it. +        gAudiop->stopInternetStream(); +        // shut down the streaming audio sub-subsystem first, in case it relies on not outliving the general audio subsystem. +        LLStreamingAudioInterface *sai = gAudiop->getStreamingAudioImpl();  		delete sai;  		gAudiop->setStreamingAudioImpl(NULL); -		// shut down the audio subsystem +        // shut down the audio subsystem          gAudiop->shutdown();  		delete gAudiop; @@ -2000,7 +1973,6 @@ bool LLAppViewer::cleanup()  		pending += LLAppViewer::getTextureFetch()->update(1); // unpauses the texture fetch thread  		pending += LLVFSThread::updateClass(0);  		pending += LLLFSThread::updateClass(0); -		pending += LLCurl::getCurlThread()->update(1) ;  		F64 idle_time = idleTimer.getElapsedTimeF64();  		if(!pending)  		{ @@ -2012,7 +1984,6 @@ bool LLAppViewer::cleanup()  			break;  		}  	} -	LLCurl::getCurlThread()->pause() ;  	// Delete workers first  	// shotdown all worker threads before deleting them in case of co-dependencies @@ -2027,17 +1998,9 @@ bool LLAppViewer::cleanup()  	LL_INFOS() << "Shutting down message system" << LL_ENDL;  	end_messaging_system(); -	// *NOTE:Mani - The following call is not thread safe.  -	LL_CHECK_MEMORY -	LLCurl::cleanupClass(); -	LL_CHECK_MEMORY -  	// Non-LLCurl libcurl library  	mAppCoreHttp.cleanup(); -	// NOTE The following call is not thread safe.  -	ll_cleanup_ares(); -  	LLFilePickerThread::cleanupClass();  	//MUST happen AFTER LLCurl::cleanupClass @@ -2123,6 +2086,7 @@ bool LLAppViewer::cleanup()  	}  	LL_INFOS() << "Cleaning up LLProxy." << LL_ENDL;  	LLProxy::cleanupClass(); +    LLCore::LLHttp::cleanup();  	LLWearableType::cleanupClass(); @@ -2792,7 +2756,7 @@ bool LLAppViewer::initConfiguration()  	//  	gWindowTitle = LLTrans::getString("APP_NAME");  #if LL_DEBUG -    gWindowTitle += std::string(" [DEBUG]"); +	gWindowTitle += std::string(" [DEBUG]");  #endif  	if (!gArgs.empty())  	{ @@ -3364,7 +3328,7 @@ LLSD LLAppViewer::getViewerInfo() const  #endif  	info["OPENGL_VERSION"] = (const char*)(glGetString(GL_VERSION)); -	info["LIBCURL_VERSION"] = LLCurl::getVersionString(); +	info["LIBCURL_VERSION"] = LLCore::LLHttp::getCURLVersion();  	info["J2C_VERSION"] = LLImageJ2C::getEngineInfo();  	bool want_fullname = true;  	info["AUDIO_DRIVER_VERSION"] = gAudiop ? LLSD(gAudiop->getDriverName(want_fullname)) : LLSD(); @@ -4719,31 +4683,6 @@ void LLAppViewer::saveNameCache()  } -void LLAppViewer::saveExperienceCache() -{ -	std::string filename = -		gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "experience_cache.xml"); -	LL_INFOS("ExperienceCache") << "Saving " << filename << LL_ENDL; -	llofstream cache_stream(filename.c_str()); -	if(cache_stream.is_open()) -	{ -		LLExperienceCache::exportFile(cache_stream); -	} -} - -void LLAppViewer::loadExperienceCache() -{ -	std::string filename = -		gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "experience_cache.xml"); -	LL_INFOS("ExperienceCache") << "Loading " << filename << LL_ENDL; -	llifstream cache_stream(filename.c_str()); -	if(cache_stream.is_open()) -	{ -		LLExperienceCache::importFile(cache_stream); -	} -} - -  /*!	@brief		This class is an LLFrameTimer that can be created with  				an elapsed time that starts counting up from the given value  				rather than 0.0. @@ -4939,7 +4878,6 @@ void LLAppViewer::idle()  	    // floating throughout the various object lists.  	    //  		idleNameCache(); -		idleExperienceCache();  		idleNetwork(); @@ -5370,22 +5308,6 @@ void LLAppViewer::idleNameCache()  	LLAvatarNameCache::idle();  } -void LLAppViewer::idleExperienceCache() -{ -	LLViewerRegion* region = gAgent.getRegion(); -	if (!region) return; -	 -	std::string lookup_url=region->getCapability("GetExperienceInfo");  -	if(!lookup_url.empty() && *lookup_url.rbegin() != '/') -	{ -		lookup_url += '/'; -	} -	 -	LLExperienceCache::setLookupURL(lookup_url); - -	LLExperienceCache::idle(); -} -  //  // Handle messages, and all message related stuff  // @@ -5548,7 +5470,9 @@ void LLAppViewer::disconnectViewer()  	}  	saveNameCache(); -	saveExperienceCache(); +    LLExperienceCache *expCache = LLExperienceCache::getIfExists(); +    if (expCache) +        expCache->cleanup();  	// close inventory interface, close all windows  	LLFloaterInventory::cleanup();  | 
