Skip to content

Commit be56311

Browse files
committed
Add std::err mmap logging messages (temp).
1 parent e2e01f4 commit be56311

File tree

2 files changed

+41
-18
lines changed

2 files changed

+41
-18
lines changed

include/bitcoin/database/memory/map.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ class BCD_API map
136136
bool resize_(size_t size) NOEXCEPT;
137137
bool finalize_(size_t size) NOEXCEPT;
138138

139+
void log(auto kind) NOEXCEPT;
140+
139141
// Constants.
140142
const std::filesystem::path filename_;
141143
const size_t minimum_;

src/memory/map.cpp

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,34 +37,41 @@
3737
#include <bitcoin/database/error.hpp>
3838
#include <bitcoin/database/file/file.hpp>
3939

40+
namespace libbitcoin {
41+
namespace database {
42+
43+
BC_PUSH_WARNING(NO_THROW_IN_NOEXCEPT)
44+
45+
using namespace system;
46+
4047
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41-
#include <chrono>
42-
#include <iostream>
48+
constexpr auto sp = " ";
4349

4450
enum logger
4551
{
46-
xopen = 0
52+
xopen,
53+
xclose,
54+
xmap,
55+
xunmap,
56+
xremap,
57+
xflush
4758
};
4859

49-
constexpr auto sp = " ";
50-
5160
size_t ticks() NOEXCEPT
5261
{
5362
using clock = std::chrono::high_resolution_clock;
5463
static const auto start = clock::now();
5564

5665
using namespace std::chrono;
57-
const auto span = duration_cast<milliseconds>(clock::now() - start);
58-
return bc::system::to_unsigned(span.count());
66+
const auto span = duration_cast<nanoseconds>(clock::now() - start);
67+
return to_unsigned(span.count());
5968
}
60-
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6169

62-
namespace libbitcoin {
63-
namespace database {
64-
65-
BC_PUSH_WARNING(NO_THROW_IN_NOEXCEPT)
66-
67-
using namespace system;
70+
void map::log(auto kind) NOEXCEPT
71+
{
72+
std::cerr << ticks() << sp << kind << sp << opened_ << std::endl;
73+
}
74+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6875

6976
map::map(const path& filename, size_t minimum, size_t expansion,
7077
bool random) NOEXCEPT
@@ -100,10 +107,9 @@ code map::open() NOEXCEPT
100107
if (const auto ec = file::open_ex(opened_, filename_, random_))
101108
return ec;
102109

103-
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104-
// 42 0 confirmed.data 19303540
110+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105111
std::cerr << ticks() << sp << logger::xopen << sp << filename_ << sp << opened_ << std::endl;
106-
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
112+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107113

108114
return file::size_ex(logical_, opened_);
109115
}
@@ -119,10 +125,12 @@ code map::close() NOEXCEPT
119125
if (opened_ == file::invalid)
120126
return error::success;
121127

128+
// ~~~~~~~~~~~~~~~~~~
129+
log(logger::xclose);
130+
// ~~~~~~~~~~~~~~~~~~
122131
const auto descriptor = opened_;
123132
opened_ = file::invalid;
124133
logical_ = zero;
125-
126134
return file::close_ex(descriptor);
127135
}
128136

@@ -488,6 +496,9 @@ bool map::flush_() NOEXCEPT
488496
if (!success)
489497
set_first_code(error::fsync_failure);
490498

499+
// ~~~~~~~~~~~~~~~~~~
500+
log(logger::xflush);
501+
// ~~~~~~~~~~~~~~~~~~
491502
return success;
492503
}
493504

@@ -516,6 +527,10 @@ bool map::unmap_() NOEXCEPT
516527
loaded_ = false;
517528
capacity_ = zero;
518529
memory_map_ = {};
530+
531+
// ~~~~~~~~~~~~~~~~~~
532+
log(logger::xunmap);
533+
// ~~~~~~~~~~~~~~~~~~
519534
return success;
520535
}
521536

@@ -533,6 +548,9 @@ bool map::map_() NOEXCEPT
533548
memory_map_ = pointer_cast<uint8_t>(::mmap(nullptr, size,
534549
PROT_READ | PROT_WRITE, MAP_SHARED, opened_, 0));
535550

551+
// ~~~~~~~~~~~~~~~~~~
552+
log(logger::xmap);
553+
// ~~~~~~~~~~~~~~~~~~
536554
return finalize_(size);
537555
}
538556

@@ -578,6 +596,9 @@ bool map::remap_(size_t size) NOEXCEPT
578596
PROT_READ | PROT_WRITE, MAP_SHARED, opened_, 0));
579597
#endif
580598

599+
// ~~~~~~~~~~~~~~~~~~
600+
log(logger::xremap);
601+
// ~~~~~~~~~~~~~~~~~~
581602
return finalize_(size);
582603
}
583604

0 commit comments

Comments
 (0)