mirror of
https://github.com/mongodb/mongo.git
synced 2024-12-01 09:32:32 +01:00
parent
23326c222d
commit
84d1ca75f7
@ -59,6 +59,11 @@ namespace mongo {
|
||||
MutexInfo _minfo;
|
||||
boost::shared_mutex _m;
|
||||
ThreadLocalValue<int> _state;
|
||||
|
||||
/* we use a separate TLS value for releasedEarly - that is ok as
|
||||
our normal/common code path, we never even touch it.
|
||||
*/
|
||||
ThreadLocalValue<bool> _releasedEarly;
|
||||
public:
|
||||
/**
|
||||
* @return
|
||||
@ -67,9 +72,13 @@ namespace mongo {
|
||||
* < 0 read lock
|
||||
*/
|
||||
int getState(){ return _state.get(); }
|
||||
void assertWriteLocked() { assert( _state.get() > 0 ); }
|
||||
void assertWriteLocked() {
|
||||
assert( getState() > 0 );
|
||||
DEV assert( !_releasedEarly.get() );
|
||||
}
|
||||
bool atLeastReadLocked() { return _state.get() != 0; }
|
||||
void assertAtLeastReadLocked() { assert(atLeastReadLocked()); }
|
||||
|
||||
void lock() {
|
||||
DEV cout << "LOCK" << endl;
|
||||
int s = _state.get();
|
||||
@ -89,11 +98,28 @@ namespace mongo {
|
||||
_state.set(s-1);
|
||||
return;
|
||||
}
|
||||
assert( s == 1 );
|
||||
if( s != 1 ) {
|
||||
if( _releasedEarly.get() ) {
|
||||
_releasedEarly.set(false);
|
||||
return;
|
||||
}
|
||||
assert(false); // attempt to unlock when wasn't in a write lock
|
||||
}
|
||||
_state.set(0);
|
||||
_minfo.leaving();
|
||||
_m.unlock();
|
||||
}
|
||||
|
||||
/* unlock (write lock), and when unlock() is called later,
|
||||
be smart then and don't unlock it again.
|
||||
*/
|
||||
void releaseEarly() {
|
||||
assert( getState() == 1 ); // must not be recursive
|
||||
assert( !_releasedEarly.get() );
|
||||
_releasedEarly.set(true);
|
||||
unlock();
|
||||
}
|
||||
|
||||
void lock_shared() {
|
||||
DEV cout << " LOCKSHARED" << endl;
|
||||
int s = _state.get();
|
||||
@ -135,6 +161,7 @@ namespace mongo {
|
||||
class MongoMutex {
|
||||
MutexInfo _minfo;
|
||||
boost::recursive_mutex m;
|
||||
ThreadLocalValue<bool> _releasedEarly;
|
||||
public:
|
||||
MongoMutex() { }
|
||||
void lock() {
|
||||
@ -146,7 +173,14 @@ namespace mongo {
|
||||
_minfo.entered();
|
||||
}
|
||||
|
||||
void unlock() {
|
||||
void releaseEarly() {
|
||||
assertWriteLocked(); // aso must not be recursive, although we don't verify that in the old boost version
|
||||
assert( !_releasedEarly.get() );
|
||||
_releasedEarly.set(true);
|
||||
_unlock();
|
||||
}
|
||||
|
||||
void _unlock() {
|
||||
_minfo.leaving();
|
||||
#if BOOST_VERSION >= 103500
|
||||
m.unlock();
|
||||
@ -154,6 +188,13 @@ namespace mongo {
|
||||
boost::detail::thread::lock_ops<boost::recursive_mutex>::unlock(m);
|
||||
#endif
|
||||
}
|
||||
void unlock() {
|
||||
if( _releasedEarly.get() ) {
|
||||
_releasedEarly.set(false);
|
||||
return;
|
||||
}
|
||||
_unlock();
|
||||
}
|
||||
|
||||
void lock_shared() { lock(); }
|
||||
void unlock_shared() { unlock(); }
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "cmdline.h"
|
||||
#include "btree.h"
|
||||
#include "curop.h"
|
||||
#include "../util/background.h"
|
||||
|
||||
namespace mongo {
|
||||
|
||||
@ -249,30 +250,97 @@ namespace mongo {
|
||||
}
|
||||
} validateCmd;
|
||||
|
||||
static bool unlockRequested = false;
|
||||
extern unsigned lockedForWriting;
|
||||
static boost::mutex lockedForWritingMutex;
|
||||
|
||||
class UnlockCommand : public Command {
|
||||
public:
|
||||
UnlockCommand() : Command( "unlock" ) { }
|
||||
virtual bool readOnly() { return true; }
|
||||
virtual bool slaveOk(){ return true; }
|
||||
virtual bool adminOnly(){ return true; }
|
||||
virtual bool run(const char *ns, BSONObj& cmdObj, string& errmsg, BSONObjBuilder& result, bool fromRepl) {
|
||||
if( lockedForWriting ) {
|
||||
errmsg = "unlock requested";
|
||||
unlockRequested = true;
|
||||
}
|
||||
else {
|
||||
errmsg = "not locked, so cannot unlock";
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
} unlockCommand;
|
||||
|
||||
class FSyncCommand : public Command {
|
||||
class LockDBJob : public BackgroundJob {
|
||||
protected:
|
||||
void run() {
|
||||
{
|
||||
boostlock lk(lockedForWritingMutex);
|
||||
lockedForWriting++;
|
||||
}
|
||||
readlock lk("");
|
||||
MemoryMappedFile::flushAll(true);
|
||||
log() << "db is now locked for snapshotting, no writes allowed. use command {unlock:1} to unlock" << endl;
|
||||
_ready = true;
|
||||
while( 1 ) {
|
||||
if( unlockRequested ) {
|
||||
unlockRequested = false;
|
||||
break;
|
||||
}
|
||||
sleepmillis(20);
|
||||
}
|
||||
{
|
||||
boostlock lk(lockedForWritingMutex);
|
||||
lockedForWriting--;
|
||||
}
|
||||
}
|
||||
public:
|
||||
bool& _ready;
|
||||
LockDBJob(bool& ready) : _ready(ready) {
|
||||
deleteSelf = true;
|
||||
_ready = false;
|
||||
}
|
||||
};
|
||||
public:
|
||||
FSyncCommand() : Command( "fsync" ){}
|
||||
|
||||
virtual bool slaveOk(){ return true; }
|
||||
virtual bool adminOnly(){ return true; }
|
||||
virtual bool localHostOnlyIfNoAuth(const BSONObj& cmdObj) {
|
||||
/*virtual bool localHostOnlyIfNoAuth(const BSONObj& cmdObj) {
|
||||
string x = cmdObj["exec"].valuestrsafe();
|
||||
return !x.empty();
|
||||
}
|
||||
}*/
|
||||
virtual bool run(const char *ns, BSONObj& cmdObj, string& errmsg, BSONObjBuilder& result, bool fromRepl) {
|
||||
/* async means do an fsync, but return immediately */
|
||||
bool sync = ! cmdObj["async"].trueValue();
|
||||
string exec = cmdObj["exec"].valuestrsafe();
|
||||
log() << "CMD fsync: sync:" << sync << endl;
|
||||
result.append( "numFiles" , MemoryMappedFile::flushAll( sync ) );
|
||||
if( !exec.empty() ) {
|
||||
uassert(12032, "fsync: sync option must be true when using exec", sync);
|
||||
assert( localHostOnlyIfNoAuth(cmdObj) );
|
||||
log() << "execing: " << exec << " (db will be locked during operation)" << endl;
|
||||
// ADD EXEC HERE
|
||||
log() << "ERROR: exec call not yet implemented" << endl;
|
||||
result.append("execOutput", "exec not yet implemented");
|
||||
log() << "exec complete" << endl;
|
||||
bool lock = cmdObj["lock"].trueValue();
|
||||
log() << "CMD fsync: sync:" << sync << " lock:" << lock << endl;
|
||||
|
||||
if( lock ) {
|
||||
uassert(12034, "fsync: can't lock while an unlock is pending", !unlockRequested);
|
||||
uassert(12032, "fsync: sync option must be true when using lock", sync);
|
||||
/* With releaseEarly(), we must be extremely careful we don't do anything
|
||||
where we would have assumed we were locked. profiling is one of those things.
|
||||
Perhaps at profile time we could check if we released early -- however,
|
||||
we need to be careful to keep that code very fast it's a very common code path when on.
|
||||
*/
|
||||
uassert(12033, "fsync: profiling must be off to enter locked mode", cc().database()->profile == 0);
|
||||
bool ready = false;
|
||||
LockDBJob *l = new LockDBJob(ready);
|
||||
dbMutex.releaseEarly();
|
||||
l->go();
|
||||
// don't return until background thread has acquired the write lock
|
||||
while( !ready ) {
|
||||
sleepmillis(10);
|
||||
}
|
||||
result.append("info", "now locked against writes, use admin command {unlock:1} to unlock");
|
||||
}
|
||||
else {
|
||||
result.append( "numFiles" , MemoryMappedFile::flushAll( sync ) );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
@ -83,6 +83,7 @@ namespace mongo {
|
||||
KillCurrentOp killCurrentOp;
|
||||
|
||||
int lockFile = 0;
|
||||
unsigned lockedForWriting; // see FSyncCommand
|
||||
|
||||
void inProgCmd( Message &m, DbResponse &dbresponse ) {
|
||||
BSONObjBuilder b;
|
||||
@ -104,6 +105,11 @@ namespace mongo {
|
||||
}
|
||||
}
|
||||
b.append("inprog", vals);
|
||||
unsigned x = lockedForWriting;
|
||||
if( x ) {
|
||||
b.append("fsyncLock", x);
|
||||
b.append("info", "use command {unlock:0} to terminate the fsync write/snapshot lock");
|
||||
}
|
||||
}
|
||||
|
||||
replyToQuery(0, m, dbresponse, b.obj());
|
||||
|
402
s/dbgrid.vcxproj
402
s/dbgrid.vcxproj
@ -1,201 +1,201 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug Recstore|Win32">
|
||||
<Configuration>Debug Recstore</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>mongos</ProjectName>
|
||||
<ProjectGuid>{E03717ED-69B4-4D21-BC55-DF6690B585C6}</ProjectGuid>
|
||||
<RootNamespace>dbgrid</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.21006.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\pcre-7.4;C:\Program Files\boost\boost_1_41_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>USE_ASIO;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4355;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>c:\program files\boost\boost_1_41_0\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>USE_ASIO;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4355;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>c:\Program Files\boost\boost_1_41_0\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\pcre-7.4;C:\Program Files\boost\boost_1_41_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>USE_ASIO;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4355;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>c:\program files\boost\boost_1_41_0\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="chunk.cpp" />
|
||||
<ClCompile Include="commands_admin.cpp" />
|
||||
<ClCompile Include="commands_public.cpp" />
|
||||
<ClCompile Include="config.cpp" />
|
||||
<ClCompile Include="cursors.cpp" />
|
||||
<ClCompile Include="..\db\queryutil.cpp" />
|
||||
<ClCompile Include="request.cpp" />
|
||||
<ClCompile Include="server.cpp" />
|
||||
<ClCompile Include="shardkey.cpp" />
|
||||
<ClCompile Include="..\stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="strategy.cpp" />
|
||||
<ClCompile Include="strategy_shard.cpp" />
|
||||
<ClCompile Include="strategy_single.cpp" />
|
||||
<ClCompile Include="..\util\assert_util.cpp" />
|
||||
<ClCompile Include="..\util\background.cpp" />
|
||||
<ClCompile Include="..\util\base64.cpp" />
|
||||
<ClCompile Include="..\db\commands.cpp" />
|
||||
<ClCompile Include="..\util\debug_util.cpp" />
|
||||
<ClCompile Include="..\db\jsobj.cpp" />
|
||||
<ClCompile Include="..\db\json.cpp" />
|
||||
<ClCompile Include="..\db\lasterror.cpp" />
|
||||
<ClCompile Include="..\util\md5.c">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\util\md5main.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\util\message.cpp" />
|
||||
<ClCompile Include="..\util\message_server_asio.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\db\nonce.cpp" />
|
||||
<ClCompile Include="..\client\parallel.cpp" />
|
||||
<ClCompile Include="..\util\sock.cpp" />
|
||||
<ClCompile Include="..\util\util.cpp" />
|
||||
<ClCompile Include="..\client\connpool.cpp" />
|
||||
<ClCompile Include="..\client\dbclient.cpp" />
|
||||
<ClCompile Include="..\client\model.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="gridconfig.h" />
|
||||
<ClInclude Include="griddatabase.h" />
|
||||
<ClInclude Include="shard.h" />
|
||||
<ClInclude Include="strategy.h" />
|
||||
<ClInclude Include="..\util\background.h" />
|
||||
<ClInclude Include="..\db\commands.h" />
|
||||
<ClInclude Include="..\db\dbmessage.h" />
|
||||
<ClInclude Include="..\util\goodies.h" />
|
||||
<ClInclude Include="..\db\jsobj.h" />
|
||||
<ClInclude Include="..\db\json.h" />
|
||||
<ClInclude Include="..\stdafx.h" />
|
||||
<ClInclude Include="..\client\connpool.h" />
|
||||
<ClInclude Include="..\client\dbclient.h" />
|
||||
<ClInclude Include="..\client\model.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug Recstore|Win32">
|
||||
<Configuration>Debug Recstore</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>mongos</ProjectName>
|
||||
<ProjectGuid>{E03717ED-69B4-4D21-BC55-DF6690B585C6}</ProjectGuid>
|
||||
<RootNamespace>dbgrid</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.21006.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\pcre-7.4;C:\Program Files\boost\boost_1_41_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>USE_ASIO;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4355;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>c:\program files\boost\boost_1_41_0\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>USE_ASIO;WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4355;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>c:\Program Files\boost\boost_1_41_0\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\pcre-7.4;C:\Program Files\boost\boost_1_41_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>USE_ASIO;WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;HAVE_CONFIG_H;PCRE_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4355;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>c:\program files\boost\boost_1_41_0\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="chunk.cpp" />
|
||||
<ClCompile Include="commands_admin.cpp" />
|
||||
<ClCompile Include="commands_public.cpp" />
|
||||
<ClCompile Include="config.cpp" />
|
||||
<ClCompile Include="cursors.cpp" />
|
||||
<ClCompile Include="..\db\queryutil.cpp" />
|
||||
<ClCompile Include="request.cpp" />
|
||||
<ClCompile Include="server.cpp" />
|
||||
<ClCompile Include="shardkey.cpp" />
|
||||
<ClCompile Include="..\stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="strategy.cpp" />
|
||||
<ClCompile Include="strategy_shard.cpp" />
|
||||
<ClCompile Include="strategy_single.cpp" />
|
||||
<ClCompile Include="..\util\assert_util.cpp" />
|
||||
<ClCompile Include="..\util\background.cpp" />
|
||||
<ClCompile Include="..\util\base64.cpp" />
|
||||
<ClCompile Include="..\db\commands.cpp" />
|
||||
<ClCompile Include="..\util\debug_util.cpp" />
|
||||
<ClCompile Include="..\db\jsobj.cpp" />
|
||||
<ClCompile Include="..\db\json.cpp" />
|
||||
<ClCompile Include="..\db\lasterror.cpp" />
|
||||
<ClCompile Include="..\util\md5.c">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\util\md5main.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\util\message.cpp" />
|
||||
<ClCompile Include="..\util\message_server_asio.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Recstore|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\db\nonce.cpp" />
|
||||
<ClCompile Include="..\client\parallel.cpp" />
|
||||
<ClCompile Include="..\util\sock.cpp" />
|
||||
<ClCompile Include="..\util\util.cpp" />
|
||||
<ClCompile Include="..\client\connpool.cpp" />
|
||||
<ClCompile Include="..\client\dbclient.cpp" />
|
||||
<ClCompile Include="..\client\model.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="gridconfig.h" />
|
||||
<ClInclude Include="griddatabase.h" />
|
||||
<ClInclude Include="shard.h" />
|
||||
<ClInclude Include="strategy.h" />
|
||||
<ClInclude Include="..\util\background.h" />
|
||||
<ClInclude Include="..\db\commands.h" />
|
||||
<ClInclude Include="..\db\dbmessage.h" />
|
||||
<ClInclude Include="..\util\goodies.h" />
|
||||
<ClInclude Include="..\db\jsobj.h" />
|
||||
<ClInclude Include="..\db\json.h" />
|
||||
<ClInclude Include="..\stdafx.h" />
|
||||
<ClInclude Include="..\client\connpool.h" />
|
||||
<ClInclude Include="..\client\dbclient.h" />
|
||||
<ClInclude Include="..\client\model.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
@ -49,9 +49,9 @@ namespace mongo {
|
||||
// May be called if file exists. If file exists, or its allocation has
|
||||
// been requested, size is updated to match existing file size.
|
||||
void requestAllocation( const string &name, long &size ) {
|
||||
/* Some of the system calls in the file allocator don't work in win,
|
||||
so no win support - 32 or 64 bit. Plus we don't seem to need preallocation
|
||||
on windows anyway as we don't have to pre-zero the file there.
|
||||
/* Some of the system calls in the file allocator don't work in win,
|
||||
so no win support - 32 or 64 bit. Plus we don't seem to need preallocation
|
||||
on windows anyway as we don't have to pre-zero the file there.
|
||||
*/
|
||||
#if !defined(_WIN32)
|
||||
boostlock lk( pendingMutex_ );
|
||||
|
Loading…
Reference in New Issue
Block a user