mirror of
https://github.com/matrix-construct/construct
synced 2024-11-28 17:52:54 +01:00
ircd::db::database::env: Fix missing at-end semantics for ReopenWritableFile().
This commit is contained in:
parent
61d558fc9d
commit
65d27f327e
2 changed files with 12 additions and 9 deletions
|
@ -121,9 +121,9 @@ noexcept try
|
|||
#endif
|
||||
|
||||
if(options.use_direct_writes)
|
||||
*r = std::make_unique<writable_file_direct>(&d, name, options, true);
|
||||
*r = std::make_unique<writable_file_direct>(&d, name, options, true, false);
|
||||
else
|
||||
*r = std::make_unique<writable_file>(&d, name, options, true);
|
||||
*r = std::make_unique<writable_file>(&d, name, options, true, false);
|
||||
|
||||
return Status::OK();
|
||||
}
|
||||
|
@ -155,9 +155,9 @@ noexcept try
|
|||
#endif
|
||||
|
||||
if(options.use_direct_writes)
|
||||
*r = std::make_unique<writable_file_direct>(&d, name, options, false);
|
||||
*r = std::make_unique<writable_file_direct>(&d, name, options, false, true);
|
||||
else
|
||||
*r = std::make_unique<writable_file>(&d, name, options, false);
|
||||
*r = std::make_unique<writable_file>(&d, name, options, false, true);
|
||||
|
||||
return Status::OK();
|
||||
}
|
||||
|
@ -1244,7 +1244,8 @@ ircd::db::database::env::make_nice(const IOPriority &prio)
|
|||
ircd::db::database::env::writable_file::writable_file(database *const &d,
|
||||
const std::string &name,
|
||||
const EnvOptions &env_opts,
|
||||
const bool &trunc)
|
||||
const bool &trunc,
|
||||
const bool &ate)
|
||||
try
|
||||
:d
|
||||
{
|
||||
|
@ -1257,6 +1258,7 @@ try
|
|||
,opts
|
||||
{
|
||||
.mode = std::ios::out | (trunc? std::ios::trunc : std::ios::openmode(0)),
|
||||
.ate = ate,
|
||||
.direct = this->env_opts.use_direct_writes,
|
||||
.cloexec = this->env_opts.set_fd_cloexec,
|
||||
.dontneed = true,
|
||||
|
@ -2220,10 +2222,11 @@ catch(...)
|
|||
ircd::db::database::env::writable_file_direct::writable_file_direct(database *const &d,
|
||||
const std::string &name,
|
||||
const EnvOptions &env_opts,
|
||||
const bool &trunc)
|
||||
const bool &trunc,
|
||||
const bool &ate)
|
||||
:writable_file
|
||||
{
|
||||
d, name, env_opts, trunc
|
||||
d, name, env_opts, trunc, ate
|
||||
}
|
||||
,alignment
|
||||
{
|
||||
|
|
|
@ -253,7 +253,7 @@ ircd::db::database::env::writable_file
|
|||
Status Flush() noexcept override;
|
||||
Status Close() noexcept override;
|
||||
|
||||
writable_file(database *const &d, const std::string &name, const EnvOptions &, const bool &trunc);
|
||||
writable_file(database *const &d, const std::string &name, const EnvOptions &, const bool &trunc, const bool &ate);
|
||||
writable_file(const writable_file &) = delete;
|
||||
writable_file(writable_file &&) = delete;
|
||||
~writable_file() noexcept;
|
||||
|
@ -291,5 +291,5 @@ ircd::db::database::env::writable_file_direct final
|
|||
Status Truncate(uint64_t size) noexcept override;
|
||||
Status Close() noexcept override;
|
||||
|
||||
writable_file_direct(database *const &d, const std::string &name, const EnvOptions &, const bool &trunc);
|
||||
writable_file_direct(database *const &d, const std::string &name, const EnvOptions &, const bool &trunc, const bool &ate);
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue