mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-28 14:35:48 +00:00
Fix application pointer singleton lifetime
This commit is contained in:
@@ -22,19 +22,7 @@
|
|||||||
<ClCompile Include="..\..\build\proto\ripple.pb.cc" />
|
<ClCompile Include="..\..\build\proto\ripple.pb.cc" />
|
||||||
<ClCompile Include="..\..\src\ripple\beast\ripple_beast.cpp" />
|
<ClCompile Include="..\..\src\ripple\beast\ripple_beast.cpp" />
|
||||||
<ClCompile Include="..\..\src\ripple\beast\ripple_beastc.c" />
|
<ClCompile Include="..\..\src\ripple\beast\ripple_beastc.c" />
|
||||||
<ClCompile Include="..\..\src\ripple\common\impl\counted_bind.cpp">
|
<ClCompile Include="..\..\src\ripple\common\functional\impl\counted_bind.cpp">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\ripple\common\impl\KeyCache.cpp">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\ripple\common\impl\TaggedCache.cpp">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
@@ -1430,12 +1418,24 @@
|
|||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\ripple_basics\containers\KeyCache.cpp">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\ripple_basics\containers\RangeSet.cpp">
|
<ClCompile Include="..\..\src\ripple_basics\containers\RangeSet.cpp">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\ripple_basics\containers\TaggedCache.cpp">
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||||
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\ripple_basics\log\Log.cpp">
|
<ClCompile Include="..\..\src\ripple_basics\log\Log.cpp">
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||||
@@ -2207,10 +2207,7 @@
|
|||||||
<ClInclude Include="..\..\src\ripple\algorithm\api\CycledSet.h" />
|
<ClInclude Include="..\..\src\ripple\algorithm\api\CycledSet.h" />
|
||||||
<ClInclude Include="..\..\src\ripple\algorithm\api\DecayingSample.h" />
|
<ClInclude Include="..\..\src\ripple\algorithm\api\DecayingSample.h" />
|
||||||
<ClInclude Include="..\..\src\ripple\algorithm\api\DiscreteClock.h" />
|
<ClInclude Include="..\..\src\ripple\algorithm\api\DiscreteClock.h" />
|
||||||
<ClInclude Include="..\..\src\ripple\common\counted_bind.h" />
|
<ClInclude Include="..\..\src\ripple\common\functional\counted_bind.h" />
|
||||||
<ClInclude Include="..\..\src\ripple\common\KeyCache.h" />
|
|
||||||
<ClInclude Include="..\..\src\ripple\common\seconds_clock.h" />
|
|
||||||
<ClInclude Include="..\..\src\ripple\common\TaggedCache.h" />
|
|
||||||
<ClInclude Include="..\..\src\ripple\http\api\Handler.h" />
|
<ClInclude Include="..\..\src\ripple\http\api\Handler.h" />
|
||||||
<ClInclude Include="..\..\src\ripple\http\api\Server.h" />
|
<ClInclude Include="..\..\src\ripple\http\api\Server.h" />
|
||||||
<ClInclude Include="..\..\src\ripple\http\api\Port.h" />
|
<ClInclude Include="..\..\src\ripple\http\api\Port.h" />
|
||||||
@@ -2458,7 +2455,6 @@
|
|||||||
<ClInclude Include="..\..\src\ripple_app\ledger\OrderBookIterator.h" />
|
<ClInclude Include="..\..\src\ripple_app\ledger\OrderBookIterator.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\ledger\SerializedValidation.h" />
|
<ClInclude Include="..\..\src\ripple_app\ledger\SerializedValidation.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\CollectorManager.h" />
|
<ClInclude Include="..\..\src\ripple_app\main\CollectorManager.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\FullBelowCache.h" />
|
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\IoServicePool.h" />
|
<ClInclude Include="..\..\src\ripple_app\main\IoServicePool.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\NodeStoreScheduler.h" />
|
<ClInclude Include="..\..\src\ripple_app\main\NodeStoreScheduler.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\ParameterTable.h" />
|
<ClInclude Include="..\..\src\ripple_app\main\ParameterTable.h" />
|
||||||
@@ -2468,7 +2464,6 @@
|
|||||||
<ClInclude Include="..\..\src\ripple_app\main\LocalCredentials.h" />
|
<ClInclude Include="..\..\src\ripple_app\main\LocalCredentials.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\RippleMain.h" />
|
<ClInclude Include="..\..\src\ripple_app\main\RippleMain.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\RPCHTTPServer.h" />
|
<ClInclude Include="..\..\src\ripple_app\main\RPCHTTPServer.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\Tuning.h" />
|
|
||||||
<ClInclude Include="..\..\src\ripple_app\misc\NetworkOPs.h" />
|
<ClInclude Include="..\..\src\ripple_app\misc\NetworkOPs.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\misc\PowResult.h" />
|
<ClInclude Include="..\..\src\ripple_app\misc\PowResult.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\misc\AccountItem.h" />
|
<ClInclude Include="..\..\src\ripple_app\misc\AccountItem.h" />
|
||||||
@@ -2533,7 +2528,10 @@
|
|||||||
<ClInclude Include="..\..\src\ripple_app\websocket\WSConnection.h" />
|
<ClInclude Include="..\..\src\ripple_app\websocket\WSConnection.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\websocket\WSDoor.h" />
|
<ClInclude Include="..\..\src\ripple_app\websocket\WSDoor.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_app\websocket\WSServerHandler.h" />
|
<ClInclude Include="..\..\src\ripple_app\websocket\WSServerHandler.h" />
|
||||||
|
<ClInclude Include="..\..\src\ripple_basics\containers\KeyCache.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_basics\containers\RangeSet.h" />
|
<ClInclude Include="..\..\src\ripple_basics\containers\RangeSet.h" />
|
||||||
|
<ClInclude Include="..\..\src\ripple_basics\containers\SyncUnorderedMap.h" />
|
||||||
|
<ClInclude Include="..\..\src\ripple_basics\containers\TaggedCache.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_basics\log\Log.h" />
|
<ClInclude Include="..\..\src\ripple_basics\log\Log.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_basics\log\LogFile.h" />
|
<ClInclude Include="..\..\src\ripple_basics\log\LogFile.h" />
|
||||||
<ClInclude Include="..\..\src\ripple_basics\log\LoggedTimings.h" />
|
<ClInclude Include="..\..\src\ripple_basics\log\LoggedTimings.h" />
|
||||||
|
|||||||
@@ -292,8 +292,11 @@
|
|||||||
<Filter Include="[1] Ripple\common">
|
<Filter Include="[1] Ripple\common">
|
||||||
<UniqueIdentifier>{b99052d6-a903-4dfd-9c68-ff767a7d8f63}</UniqueIdentifier>
|
<UniqueIdentifier>{b99052d6-a903-4dfd-9c68-ff767a7d8f63}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter Include="[1] Ripple\common\impl">
|
<Filter Include="[1] Ripple\common\functional">
|
||||||
<UniqueIdentifier>{c9eed7bc-87ac-4a4f-ab79-91de2319d22a}</UniqueIdentifier>
|
<UniqueIdentifier>{e2a53cb6-0594-4646-a36f-68d598972da4}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="[1] Ripple\common\functional\impl">
|
||||||
|
<UniqueIdentifier>{24383350-1f23-42f8-8b58-399fee670b17}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -1440,14 +1443,14 @@
|
|||||||
<ClCompile Include="..\..\src\ripple_app\ledger\DirectoryEntryIterator.cpp">
|
<ClCompile Include="..\..\src\ripple_app\ledger\DirectoryEntryIterator.cpp">
|
||||||
<Filter>[2] Old Ripple\ripple_app\ledger</Filter>
|
<Filter>[2] Old Ripple\ripple_app\ledger</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\ripple\common\impl\counted_bind.cpp">
|
<ClCompile Include="..\..\src\ripple\common\functional\impl\counted_bind.cpp">
|
||||||
<Filter>[1] Ripple\common\impl</Filter>
|
<Filter>[1] Ripple\common\functional\impl</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\ripple\common\impl\KeyCache.cpp">
|
<ClCompile Include="..\..\src\ripple_basics\containers\KeyCache.cpp">
|
||||||
<Filter>[1] Ripple\common\impl</Filter>
|
<Filter>[2] Old Ripple\ripple_basics\containers</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\ripple\common\impl\TaggedCache.cpp">
|
<ClCompile Include="..\..\src\ripple_basics\containers\TaggedCache.cpp">
|
||||||
<Filter>[1] Ripple\common\impl</Filter>
|
<Filter>[2] Old Ripple\ripple_basics\containers</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -2940,23 +2943,17 @@
|
|||||||
<ClInclude Include="..\..\src\ripple_app\paths\PathRequests.h">
|
<ClInclude Include="..\..\src\ripple_app\paths\PathRequests.h">
|
||||||
<Filter>[2] Old Ripple\ripple_app\paths</Filter>
|
<Filter>[2] Old Ripple\ripple_app\paths</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\ripple\common\counted_bind.h">
|
<ClInclude Include="..\..\src\ripple\common\functional\counted_bind.h">
|
||||||
<Filter>[1] Ripple\common</Filter>
|
<Filter>[1] Ripple\common\functional</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\ripple\common\KeyCache.h">
|
<ClInclude Include="..\..\src\ripple_basics\containers\KeyCache.h">
|
||||||
<Filter>[1] Ripple\common</Filter>
|
<Filter>[2] Old Ripple\ripple_basics\containers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\ripple\common\TaggedCache.h">
|
<ClInclude Include="..\..\src\ripple_basics\containers\SyncUnorderedMap.h">
|
||||||
<Filter>[1] Ripple\common</Filter>
|
<Filter>[2] Old Ripple\ripple_basics\containers</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\ripple\common\seconds_clock.h">
|
<ClInclude Include="..\..\src\ripple_basics\containers\TaggedCache.h">
|
||||||
<Filter>[1] Ripple\common</Filter>
|
<Filter>[2] Old Ripple\ripple_basics\containers</Filter>
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\FullBelowCache.h">
|
|
||||||
<Filter>[2] Old Ripple\ripple_app\main</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\src\ripple_app\main\Tuning.h">
|
|
||||||
<Filter>[2] Old Ripple\ripple_app\main</Filter>
|
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -56,9 +56,38 @@ template <> char const* LogPartition::getPartitionName <TaggedCacheLog> () { ret
|
|||||||
//
|
//
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// This hack lets the s_instance variable remain set during
|
||||||
|
// the call to ~Application
|
||||||
|
class ApplicationImpBase : public Application
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ApplicationImpBase ()
|
||||||
|
{
|
||||||
|
assert (s_instance == nullptr);
|
||||||
|
s_instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
~ApplicationImpBase ()
|
||||||
|
{
|
||||||
|
s_instance = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Application* s_instance;
|
||||||
|
|
||||||
|
static Application& getInstance ()
|
||||||
|
{
|
||||||
|
bassert (s_instance != nullptr);
|
||||||
|
return *s_instance;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Application* ApplicationImpBase::s_instance;
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
// VFALCO TODO Move the function definitions into the class declaration
|
// VFALCO TODO Move the function definitions into the class declaration
|
||||||
class ApplicationImp
|
class ApplicationImp
|
||||||
: public Application
|
: public ApplicationImpBase
|
||||||
, public RootStoppable
|
, public RootStoppable
|
||||||
, public DeadlineTimer::Listener
|
, public DeadlineTimer::Listener
|
||||||
, public LeakChecked <ApplicationImp>
|
, public LeakChecked <ApplicationImp>
|
||||||
@@ -127,14 +156,6 @@ public:
|
|||||||
|
|
||||||
io_latency_probe <std::chrono::steady_clock> m_probe;
|
io_latency_probe <std::chrono::steady_clock> m_probe;
|
||||||
|
|
||||||
static ApplicationImp* s_instance;
|
|
||||||
|
|
||||||
static Application& getInstance ()
|
|
||||||
{
|
|
||||||
bassert (s_instance != nullptr);
|
|
||||||
return *s_instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
class sample_io_service_latency
|
class sample_io_service_latency
|
||||||
@@ -298,19 +319,12 @@ public:
|
|||||||
// VFALCO HACK
|
// VFALCO HACK
|
||||||
m_nodeStoreScheduler.setJobQueue (*m_jobQueue);
|
m_nodeStoreScheduler.setJobQueue (*m_jobQueue);
|
||||||
|
|
||||||
bassert (s_instance == nullptr);
|
|
||||||
s_instance = this;
|
|
||||||
|
|
||||||
add (m_ledgerMaster->getPropertySource ());
|
add (m_ledgerMaster->getPropertySource ());
|
||||||
|
|
||||||
// VFALCO TODO remove these once the call is thread safe.
|
// VFALCO TODO remove these once the call is thread safe.
|
||||||
HashMaps::getInstance ().initializeNonce <size_t> ();
|
HashMaps::getInstance ().initializeNonce <size_t> ();
|
||||||
}
|
}
|
||||||
|
|
||||||
~ApplicationImp ()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
CollectorManager& getCollectorManager ()
|
CollectorManager& getCollectorManager ()
|
||||||
@@ -1366,10 +1380,6 @@ void ApplicationImp::onAnnounceAddress ()
|
|||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
ApplicationImp* ApplicationImp::s_instance;
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Application::Application ()
|
Application::Application ()
|
||||||
: PropertyStream::Source ("app")
|
: PropertyStream::Source ("app")
|
||||||
{
|
{
|
||||||
@@ -1382,7 +1392,7 @@ std::unique_ptr <Application> make_Application ()
|
|||||||
|
|
||||||
Application& getApp ()
|
Application& getApp ()
|
||||||
{
|
{
|
||||||
return ApplicationImp::getInstance ();
|
return ApplicationImpBase::getInstance ();
|
||||||
}
|
}
|
||||||
|
|
||||||
// class LoandObject (5removed, use git history to recover)
|
// class LoandObject (5removed, use git history to recover)
|
||||||
|
|||||||
Reference in New Issue
Block a user