116 for (
unsigned i = 0; i < attempts; ++i)
123 const auto wrote = f(*(*txn));
static MDB_env * env
Definition blockchain_blackball.cpp:60
*return False if otherwise error()
database(database const &)=delete
expect< suspended_txn > reset_txn(read_txn txn) noexcept
Definition database.cpp:166
expect< void > commit(write_txn txn) noexcept
Commit the read-write transaction.
Definition database.cpp:179
expect< write_txn > create_write_txn() noexcept
Definition database.cpp:174
database(database &&)=delete
MDB_env * handle() const noexcept
Definition database.h:71
expect< void > resize() noexcept
Definition database.cpp:129
virtual ~database() noexcept
Definition database.cpp:124
std::result_of< F(MDB_txn &)>::type try_write(F f, unsigned attempts=3)
Definition database.h:114
context ctx
Definition database.h:68
expect< read_txn > create_read_txn(suspended_txn txn=nullptr) noexcept
Definition database.cpp:147
database(environment env)
Definition database.cpp:113
environment env
Definition database.h:67
expect< write_txn > do_create_txn(unsigned int flags) noexcept
Definition database.cpp:91
#define MONERO_PRECOND(...)
If precondition fails, return error::kInvalidArgument in current scope.
Definition expect.h:40
#define MONERO_CHECK(...)
Check expect<void> and return errors in current scope.
Definition expect.h:48
#define MDB_MAP_FULL
Definition lmdb.h:451
void mdb_env_close(MDB_env *env)
Close the environment and release the memory map.
Definition mdb.c:5751
unsigned int MDB_dbi
A handle for an individual database in the DB environment.
Definition lmdb.h:270
#define const
Definition ipfrdr.c:80
Lightning memory-mapped database library.
static int flags
Definition mdb_load.c:31
Definition database.cpp:46
std::unique_ptr< MDB_txn, abort_write_txn > write_txn
Definition transaction.h:95
std::unique_ptr< MDB_env, close_env > environment
Definition database.h:52
std::unique_ptr< MDB_txn, release_read_txn > read_txn
Definition transaction.h:94
error
Tracks LMDB error codes.
Definition error.h:45
expect< environment > open_environment(const char *path, MDB_dbi max_dbs) noexcept
Definition database.cpp:78
std::unique_ptr< MDB_txn, abort_txn > suspended_txn
Definition transaction.h:93
#define F(w, k)
Definition sha512-blocks.c:61
Closes LMDB environment handle.
Definition database.h:44
void operator()(MDB_env *ptr) const noexcept
Definition database.h:45
Context given to LMDB.
Definition database.h:59
std::atomic< std::size_t > active
Definition database.h:60
std::atomic_flag lock
Definition database.h:61