diff options
Diffstat (limited to 'indra/llvfs')
| -rwxr-xr-x | indra/llvfs/CMakeLists.txt | 2 | ||||
| -rwxr-xr-x | indra/llvfs/lldir.cpp | 32 | ||||
| -rwxr-xr-x | indra/llvfs/llpidlock.cpp | 276 | ||||
| -rwxr-xr-x | indra/llvfs/llpidlock.h | 59 | ||||
| -rwxr-xr-x | indra/llvfs/llvfs.h | 1 | 
5 files changed, 16 insertions, 354 deletions
| diff --git a/indra/llvfs/CMakeLists.txt b/indra/llvfs/CMakeLists.txt index 67dce8c073..f19fdf4890 100755 --- a/indra/llvfs/CMakeLists.txt +++ b/indra/llvfs/CMakeLists.txt @@ -15,7 +15,6 @@ set(llvfs_SOURCE_FILES      lldir.cpp      lldiriterator.cpp      lllfsthread.cpp -    llpidlock.cpp      llvfile.cpp      llvfs.cpp      llvfsthread.cpp @@ -28,7 +27,6 @@ set(llvfs_HEADER_FILES      lldirguard.h      lldiriterator.h      lllfsthread.h -    llpidlock.h      llvfile.h      llvfs.h      llvfsthread.h diff --git a/indra/llvfs/lldir.cpp b/indra/llvfs/lldir.cpp index 6899e9a44a..b7e71b87a8 100755 --- a/indra/llvfs/lldir.cpp +++ b/indra/llvfs/lldir.cpp @@ -926,22 +926,22 @@ bool LLDir::setCacheDir(const std::string &path)  void LLDir::dumpCurrentDirectories()  { -	LL_DEBUGS2("AppInit","Directories") << "Current Directories:" << LL_ENDL; - -	LL_DEBUGS2("AppInit","Directories") << "  CurPath:               " << getCurPath() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  AppName:               " << getAppName() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  ExecutableFilename:    " << getExecutableFilename() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  ExecutableDir:         " << getExecutableDir() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  ExecutablePathAndName: " << getExecutablePathAndName() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  WorkingDir:            " << getWorkingDir() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  AppRODataDir:          " << getAppRODataDir() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  OSUserDir:             " << getOSUserDir() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  OSUserAppDir:          " << getOSUserAppDir() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  LindenUserDir:         " << getLindenUserDir() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  TempDir:               " << getTempDir() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  CAFile:				 " << getCAFile() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  SkinBaseDir:           " << getSkinBaseDir() << LL_ENDL; -	LL_DEBUGS2("AppInit","Directories") << "  SkinDir:               " << getSkinDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "Current Directories:" << LL_ENDL; + +	LL_DEBUGS("AppInit","Directories") << "  CurPath:               " << getCurPath() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  AppName:               " << getAppName() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  ExecutableFilename:    " << getExecutableFilename() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  ExecutableDir:         " << getExecutableDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  ExecutablePathAndName: " << getExecutablePathAndName() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  WorkingDir:            " << getWorkingDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  AppRODataDir:          " << getAppRODataDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  OSUserDir:             " << getOSUserDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  OSUserAppDir:          " << getOSUserAppDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  LindenUserDir:         " << getLindenUserDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  TempDir:               " << getTempDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  CAFile:				 " << getCAFile() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  SkinBaseDir:           " << getSkinBaseDir() << LL_ENDL; +	LL_DEBUGS("AppInit","Directories") << "  SkinDir:               " << getSkinDir() << LL_ENDL;  }  std::string LLDir::add(const std::string& path, const std::string& name) const diff --git a/indra/llvfs/llpidlock.cpp b/indra/llvfs/llpidlock.cpp deleted file mode 100755 index 3b83d1b9e3..0000000000 --- a/indra/llvfs/llpidlock.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/**  - * @file llformat.cpp - * @date   January 2007 - * @brief string formatting utility - * - * $LicenseInfo:firstyear=2007&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -#include "linden_common.h" - -#include "llpidlock.h" -#include "lldir.h" -#include "llsd.h" -#include "llsdserialize.h" -#include "llnametable.h" -#include "llframetimer.h" - -#if LL_WINDOWS   //For windows platform. - -#include "llwin32headerslean.h" - -namespace { -	inline DWORD getpid() { -		return GetCurrentProcessId(); -	} -} - -bool isProcessAlive(U32 pid) -{ -	return (bool) GetProcessVersion((DWORD)pid); -} - -#else   //Everyone Else -bool isProcessAlive(U32 pid) -{    -	return (bool) kill( (pid_t)pid, 0); -} -#endif //Everyone else. - - -	 -class LLPidLockFile -{ -	public: -		LLPidLockFile( ) : -			mAutosave(false), -			mSaving(false), -			mWaiting(false), -			mPID(getpid()), -			mNameTable(NULL), -			mClean(true) -		{ -			mLockName = gDirUtilp->getTempDir() + gDirUtilp->getDirDelimiter() + "savelock"; -		} -		bool requestLock(LLNameTable<void *> *name_table, bool autosave, -						bool force_immediate=FALSE, F32 timeout=300.0); -		bool checkLock(); -		void releaseLock(); - -	private: -		void writeLockFile(LLSD pids); -	public: -		static LLPidLockFile& instance(); // return the singleton black list file -			  -		bool mAutosave; -		bool mSaving; -		bool mWaiting; -		LLFrameTimer mTimer; -		U32  mPID; -		std::string mLockName; -		std::string mSaveName; -		LLSD mPIDS_sd; -		LLNameTable<void*> *mNameTable; -		bool mClean; -}; - -LLPidLockFile& LLPidLockFile::instance() -{    -	static LLPidLockFile the_file; -	return the_file; -} - -void LLPidLockFile::writeLockFile(LLSD pids) -{ -	llofstream ofile(mLockName); - -	if (!LLSDSerialize::toXML(pids,ofile)) -	{ -		llwarns << "Unable to write concurrent save lock file." << llendl; -	} -	ofile.close(); -} - -bool LLPidLockFile::requestLock(LLNameTable<void *> *name_table, bool autosave, -								bool force_immediate, F32 timeout) -{ -	bool readyToSave = FALSE; - -	if (mSaving) return FALSE;	//Bail out if we're currently saving.  Will not queue another save. -	 -	if (!mWaiting){ -		mNameTable=name_table; -		mAutosave = autosave; -	} - -	LLSD out_pids; -	out_pids.append( (LLSD::Integer)mPID ); - -	llifstream ifile(mLockName); - -	if (ifile.is_open())  -	{									//If file exists, we need to decide whether or not to continue. -		if ( force_immediate -			|| mTimer.hasExpired() )	//Only deserialize if we REALLY need to. -		{ - -			LLSD in_pids; - -			LLSDSerialize::fromXML(in_pids, ifile);	 - -			//Clean up any dead PIDS that might be in there. -			for (LLSD::array_iterator i=in_pids.beginArray(); -				i !=in_pids.endArray(); -				++i) -			{ -				U32 stored_pid=(*i).asInteger(); - -				if (isProcessAlive(stored_pid)) -				{ -					out_pids.append( (*i) ); -				} -			} - -			readyToSave=TRUE; -		} -		ifile.close(); -	} -	else -	{ -		readyToSave=TRUE; -	} - -	if (!mWaiting)				//Not presently waiting to save.  Queue up. -	{ -		mTimer.resetWithExpiry(timeout); -		mWaiting=TRUE; -	} - -	if (readyToSave) -	{	//Potential race condition won't kill us. Ignore it. -		writeLockFile(out_pids); -		mSaving=TRUE; -	} -	 -	return readyToSave; -} - -bool LLPidLockFile::checkLock() -{ -	return mWaiting; -} - -void LLPidLockFile::releaseLock() -{ -	llifstream ifile(mLockName); -	LLSD in_pids; -	LLSD out_pids; -	bool write_file=FALSE; - -	LLSDSerialize::fromXML(in_pids, ifile);	 - -	//Clean up this PID and any dead ones. -	for (LLSD::array_iterator i=in_pids.beginArray(); -		i !=in_pids.endArray(); -		++i) -	{ -		U32 stored_pid=(*i).asInteger(); - -		if (stored_pid != mPID && isProcessAlive(stored_pid)) -		{ -			out_pids.append( (*i) ); -			write_file=TRUE; -		} -	} -	ifile.close(); - -	if (write_file) -	{ -		writeLockFile(out_pids); -	} -	else -	{ -		unlink(mLockName.c_str()); -	} - -	mSaving=FALSE; -	mWaiting=FALSE; -} - -//LLPidLock - -void LLPidLock::initClass() {  -	(void) LLPidLockFile::instance();  -} - -bool LLPidLock::checkLock()  -{ -	return LLPidLockFile::instance().checkLock(); -} - -bool LLPidLock::requestLock(LLNameTable<void *> *name_table, bool autosave, -								bool force_immediate, F32 timeout) -{ -	return LLPidLockFile::instance().requestLock(name_table,autosave,force_immediate,timeout); -} - -void LLPidLock::releaseLock()  -{  -	return LLPidLockFile::instance().releaseLock();  -} - -bool LLPidLock::isClean()  -{  -	return LLPidLockFile::instance().mClean;  -} - -//getters -LLNameTable<void *> * LLPidLock::getNameTable()  -{  -    return LLPidLockFile::instance().mNameTable;  -} - -bool LLPidLock::getAutosave()  -{  -	return LLPidLockFile::instance().mAutosave;  -} - -bool LLPidLock::getClean()  -{  -	return LLPidLockFile::instance().mClean;  -} - -std::string LLPidLock::getSaveName()  -{  -	return LLPidLockFile::instance().mSaveName;  -} - -//setters -void LLPidLock::setClean(bool clean)  -{  -	LLPidLockFile::instance().mClean=clean;  -} - -void LLPidLock::setSaveName(std::string savename)  -{  -	LLPidLockFile::instance().mSaveName=savename;  -} diff --git a/indra/llvfs/llpidlock.h b/indra/llvfs/llpidlock.h deleted file mode 100755 index d3295f4911..0000000000 --- a/indra/llvfs/llpidlock.h +++ /dev/null @@ -1,59 +0,0 @@ -/**  - * @file llpidlock.h - * @brief System information debugging classes. - * - * $LicenseInfo:firstyear=2001&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - *  - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - *  - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU - * Lesser General Public License for more details. - *  - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  - * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA - * $/LicenseInfo$ - */ - -#ifndef LL_PIDLOCK_H -#define LL_PIDLOCK_H -#include "llnametable.h" - -class LLSD; -class LLFrameTimer; - -#if !LL_WINDOWS	//For non-windows platforms. -#include <signal.h> -#endif - -namespace LLPidLock -{ -    void initClass(); // { (void) LLPidLockFile::instance(); } - -	bool requestLock( LLNameTable<void *> *name_table=NULL, bool autosave=TRUE, -					  bool force_immediate=FALSE, F32 timeout=300.0); -	bool checkLock();  -	void releaseLock();  -	bool isClean();  - -	//getters -	LLNameTable<void *> * getNameTable();  -	bool getAutosave();  -	bool getClean();  -	std::string getSaveName();  - -	//setters -	void setClean(bool clean);  -	void setSaveName(std::string savename);  -}; - -#endif // LL_PIDLOCK_H diff --git a/indra/llvfs/llvfs.h b/indra/llvfs/llvfs.h index 63f0f28933..39f31a221b 100755 --- a/indra/llvfs/llvfs.h +++ b/indra/llvfs/llvfs.h @@ -29,7 +29,6 @@  #include <deque>  #include "lluuid.h" -#include "linked_lists.h"  #include "llassettype.h"  #include "llthread.h" | 
