Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions builds/gnu/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,10 @@ include_bitcoin_database_impl_memorydir = \

include_bitcoin_database_impl_memory_HEADERS = \
${srcdir}/../../include/bitcoin/database/impl/memory/mmap.ipp \
${srcdir}/../../include/bitcoin/database/impl/memory/mmap_body.ipp \
${srcdir}/../../include/bitcoin/database/impl/memory/mmap_dispatch.ipp \
${srcdir}/../../include/bitcoin/database/impl/memory/mmap_extent.ipp \
${srcdir}/../../include/bitcoin/database/impl/memory/mmap_head.ipp \
${srcdir}/../../include/bitcoin/database/impl/memory/mmap_native.ipp \
${srcdir}/../../include/bitcoin/database/impl/memory/mmap_private.ipp \
${srcdir}/../../include/bitcoin/database/impl/memory/mmap_staging.ipp \
Expand Down
2 changes: 1 addition & 1 deletion builds/msvc/build-msvc.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ if "!libbitcoin_database_TAG!" == "" (
)

if "!BUILD_VERSION!" == "" (
set "BUILD_VERSION=vs2022"
set "BUILD_VERSION=vs2026"
call :msg_warn "Build msvc version not provided, defaulting to '!BUILD_VERSION!'."
)

Expand Down
6 changes: 1 addition & 5 deletions builds/msvc/build/build_all.bat
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
@ECHO OFF
CALL nuget_all.bat
ECHO.
CALL build_base.bat vs2022 libbitcoin-database "Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build"
CALL build_base.bat vs2019 libbitcoin-database "Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build"
CALL build_base.bat vs2017 libbitcoin-database "Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build"
REM CALL build_base.bat vs2015 libbitcoin-database "Microsoft Visual Studio 14.0\VC"
REM CALL build_base.bat vs2013 libbitcoin-database "Microsoft Visual Studio 12.0\VC"
CALL build_base.bat vs2026 libbitcoin-database "Microsoft Visual Studio\18\Community\VC\Auxiliary\Build"
PAUSE
4 changes: 1 addition & 3 deletions builds/msvc/build/build_base.bat
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
@ECHO OFF
REM Usage: [buildbase.bat vs2017 libbitcoin "Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build"]
REM Usage: [buildbase.bat vs2015 libbitcoin "Microsoft Visual Studio 14.0\VC"]
REM Usage: [buildbase.bat vs2013 libbitcoin "Microsoft Visual Studio 12.0\VC"]
REM Usage: [buildbase.bat vs2026 libbitcoin "Microsoft Visual Studio\18\Community\VC\Auxiliary\Build"]

SET studio=%1
SET project=%2
Expand Down
18 changes: 4 additions & 14 deletions builds/msvc/build/nuget_all.bat
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
@ECHO OFF
ECHO Downloading libbitcoin vs2022 dependencies from NuGet
CALL nuget.exe install ..\vs2022\libbitcoin-database\packages.config
CALL nuget.exe install ..\vs2022\libbitcoin-database-tools\packages.config
CALL nuget.exe install ..\vs2022\libbitcoin-database-test\packages.config
ECHO.
ECHO Downloading libbitcoin vs2019 dependencies from NuGet
CALL nuget.exe install ..\vs2019\libbitcoin-database\packages.config
CALL nuget.exe install ..\vs2019\libbitcoin-database-tools\packages.config
CALL nuget.exe install ..\vs2019\libbitcoin-database-test\packages.config
ECHO.
ECHO Downloading libbitcoin vs2017 dependencies from NuGet
CALL nuget.exe install ..\vs2017\libbitcoin-database\packages.config
CALL nuget.exe install ..\vs2017\libbitcoin-database-tools\packages.config
CALL nuget.exe install ..\vs2017\libbitcoin-database-test\packages.config
ECHO Downloading libbitcoin vs2026 dependencies from NuGet
CALL nuget.exe install ..\vs2026\libbitcoin-database\packages.config
CALL nuget.exe install ..\vs2026\libbitcoin-database-tools\packages.config
CALL nuget.exe install ..\vs2026\libbitcoin-database-test\packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,10 @@
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap.ipp" />
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_body.ipp" />
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_dispatch.ipp" />
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_extent.ipp" />
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_head.ipp" />
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_native.ipp" />
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_private.ipp" />
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_staging.ipp" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -457,9 +457,18 @@
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap.ipp">
<Filter>include\bitcoin\database\impl\memory</Filter>
</None>
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_body.ipp">
<Filter>include\bitcoin\database\impl\memory</Filter>
</None>
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_dispatch.ipp">
<Filter>include\bitcoin\database\impl\memory</Filter>
</None>
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_extent.ipp">
<Filter>include\bitcoin\database\impl\memory</Filter>
</None>
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_head.ipp">
<Filter>include\bitcoin\database\impl\memory</Filter>
</None>
<None Include="..\..\..\..\include\bitcoin\database\impl\memory\mmap_native.ipp">
<Filter>include\bitcoin\database\impl\memory</Filter>
</None>
Expand Down
23 changes: 17 additions & 6 deletions include/bitcoin/database/impl/memory/mmap.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ namespace database {
// Constructors.
// ----------------------------------------------------------------------------

// A managed head is an unstaged scalar instance under the anonymous model:
// page-tracked, transferred by its worker, released and shared by currency.
// Unstaged aggregates transfer in full, and shared heads map their files.
TEMPLATE
CLASS::mmap(const path& filename, const storage_settings& settings,
bool random, bool staged) NOEXCEPT
Expand All @@ -42,6 +45,7 @@ CLASS::mmap(const path& filename, const storage_settings& settings,
access_(settings.access),
random_(random),
staged_(staged),
managed_(!staged && !head_shared),
opened_{ file::invalid }
{
}
Expand All @@ -57,6 +61,7 @@ CLASS::mmap(const paths& filenames, const storage_settings& settings,
access_(settings.access),
random_(random),
staged_(staged),
managed_(false),
opened_{}
{
opened_.fill(file::invalid);
Expand All @@ -65,12 +70,8 @@ CLASS::mmap(const paths& filenames, const storage_settings& settings,
TEMPLATE
CLASS::~mmap() NOEXCEPT
{
#if defined(MANAGE_STAGING)
// Join a settler left running by an unload bypass (thread safety).
settler_stop_();
#elif defined(HAVE_MSC)
scanner_stop_();
#endif
// Join a worker left running by an unload bypass (thread safety).
worker_stop_();

BC_ASSERT(!loaded_.load());
BC_ASSERT(is_zero(logical_.load()));
Expand Down Expand Up @@ -98,6 +99,16 @@ bool CLASS::is_loaded() const NOEXCEPT
return loaded_.load();
}

TEMPLATE
bool CLASS::shared() const NOEXCEPT
{
#if defined(MANAGE_STAGING)
return shared_.load();
#else
return false;
#endif
}

// protected
// ----------------------------------------------------------------------------

Expand Down
Loading
Loading