@ -439,8 +439,9 @@ bool AppInit2()
FILE * file = fopen ( pathLockFile . string ( ) . c_str ( ) , " a " ) ; // empty lock file; created if it doesn't exist.
FILE * file = fopen ( pathLockFile . string ( ) . c_str ( ) , " a " ) ; // empty lock file; created if it doesn't exist.
if ( file ) fclose ( file ) ;
if ( file ) fclose ( file ) ;
static boost : : interprocess : : file_lock lock ( pathLockFile . string ( ) . c_str ( ) ) ;
static boost : : interprocess : : file_lock lock ( pathLockFile . string ( ) . c_str ( ) ) ;
const char * pszDataDir = GetDataDir ( ) . string ( ) . c_str ( ) ;
if ( ! lock . try_lock ( ) )
if ( ! lock . try_lock ( ) )
return InitError ( strprintf ( _ ( " Cannot obtain a lock on data directory %s. Bitcoin is probably already running. " ) , GetDataDir ( ) . string ( ) . c_str ( ) ) ) ;
return InitError ( strprintf ( _ ( " Cannot obtain a lock on data directory %s. Bitcoin is probably already running. " ) , pszDataDir ) ) ;
# if !defined(WIN32) && !defined(QT_GUI)
# if !defined(WIN32) && !defined(QT_GUI)
if ( fDaemon )
if ( fDaemon )
@ -472,7 +473,7 @@ bool AppInit2()
if ( ! fLogTimestamps )
if ( ! fLogTimestamps )
printf ( " Startup time: %s \n " , DateTimeStrFormat ( " %x %H:%M:%S " , GetTime ( ) ) . c_str ( ) ) ;
printf ( " Startup time: %s \n " , DateTimeStrFormat ( " %x %H:%M:%S " , GetTime ( ) ) . c_str ( ) ) ;
printf ( " Default data directory %s \n " , GetDefaultDataDir ( ) . string ( ) . c_str ( ) ) ;
printf ( " Default data directory %s \n " , GetDefaultDataDir ( ) . string ( ) . c_str ( ) ) ;
printf ( " Used data directory %s \n " , GetDataDir ( ) . string ( ) . c_str ( ) ) ;
printf ( " Used data directory %s \n " , pszDataDir ) ;
std : : ostringstream strErrors ;
std : : ostringstream strErrors ;
if ( fDaemon )
if ( fDaemon )
@ -588,6 +589,14 @@ bool AppInit2()
// ********************************************************* Step 6: load blockchain
// ********************************************************* Step 6: load blockchain
if ( ! bitdb . Open ( GetDataDir ( ) ) )
{
string msg = strprintf ( _ ( " Error initializing database environment %s! "
" To recover, BACKUP THAT DIRECTORY, then remove "
" everything from it except for wallet.dat. " ) , pszDataDir ) ;
return InitError ( msg ) ;
}
if ( GetBoolArg ( " -loadblockindextest " ) )
if ( GetBoolArg ( " -loadblockindextest " ) )
{
{
CTxDB txdb ( " r " ) ;
CTxDB txdb ( " r " ) ;
@ -600,7 +609,7 @@ bool AppInit2()
printf ( " Loading block index... \n " ) ;
printf ( " Loading block index... \n " ) ;
nStart = GetTimeMillis ( ) ;
nStart = GetTimeMillis ( ) ;
if ( ! LoadBlockIndex ( ) )
if ( ! LoadBlockIndex ( ) )
strErrors < < _ ( " Error loading blkindex.dat " ) < < " \n " ;
return InitError ( _ ( " Error loading blkindex.dat " ) ) ;
// as LoadBlockIndex can take several minutes, it's possible the user
// as LoadBlockIndex can take several minutes, it's possible the user
// requested to kill bitcoin-qt during the last operation. If so, exit.
// requested to kill bitcoin-qt during the last operation. If so, exit.