mirror of
https://github.com/isar/libmdbx.git
synced 2024-12-30 02:54:13 +08:00
mdbx: безусловное прерывание транзакции при опции MDBX_CP_DISPOSE_TXN
.
This commit is contained in:
parent
47f96b6afa
commit
f32d3f260f
@ -838,9 +838,7 @@ __cold static int copy2pathname(MDBX_txn *txn, const pathchar_t *dest_path,
|
|||||||
__cold int mdbx_txn_copy2fd(MDBX_txn *txn, mdbx_filehandle_t fd,
|
__cold int mdbx_txn_copy2fd(MDBX_txn *txn, mdbx_filehandle_t fd,
|
||||||
MDBX_copy_flags_t flags) {
|
MDBX_copy_flags_t flags) {
|
||||||
int rc = check_txn(txn, MDBX_TXN_BLOCKED);
|
int rc = check_txn(txn, MDBX_TXN_BLOCKED);
|
||||||
if (unlikely(rc != MDBX_SUCCESS))
|
if (likely(rc == MDBX_SUCCESS))
|
||||||
return rc;
|
|
||||||
|
|
||||||
rc = copy2fd(txn, fd, flags);
|
rc = copy2fd(txn, fd, flags);
|
||||||
if (flags & MDBX_CP_DISPOSE_TXN)
|
if (flags & MDBX_CP_DISPOSE_TXN)
|
||||||
mdbx_txn_abort(txn);
|
mdbx_txn_abort(txn);
|
||||||
@ -882,9 +880,7 @@ __cold int mdbx_txn_copy2pathnameW(MDBX_txn *txn, const wchar_t *dest_path,
|
|||||||
MDBX_copy_flags_t flags) {
|
MDBX_copy_flags_t flags) {
|
||||||
#endif /* Windows */
|
#endif /* Windows */
|
||||||
int rc = check_txn(txn, MDBX_TXN_BLOCKED);
|
int rc = check_txn(txn, MDBX_TXN_BLOCKED);
|
||||||
if (unlikely(rc != MDBX_SUCCESS))
|
if (likely(rc == MDBX_SUCCESS))
|
||||||
return rc;
|
|
||||||
|
|
||||||
rc = copy2pathname(txn, dest_path, flags);
|
rc = copy2pathname(txn, dest_path, flags);
|
||||||
if (flags & MDBX_CP_DISPOSE_TXN)
|
if (flags & MDBX_CP_DISPOSE_TXN)
|
||||||
mdbx_txn_abort(txn);
|
mdbx_txn_abort(txn);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user