fix transactions on Windows

This commit is contained in:
Krasimir Angelov
2023-01-27 08:33:04 +01:00
parent bdb9a20f7e
commit 2bf3fcfc9c

View File

@@ -1532,7 +1532,6 @@ void PgfDB::commit(object o)
pthread_mutex_unlock(&ms->write_mutex); pthread_mutex_unlock(&ms->write_mutex);
#else #else
if (fd > 0) {
if (free_descriptors[2] != 0) { if (free_descriptors[2] != 0) {
ptr(block_descr,free_descriptors[2])->chain = free_descriptors[0]; ptr(block_descr,free_descriptors[2])->chain = free_descriptors[0];
free_descriptors[0] = free_descriptors[1]; free_descriptors[0] = free_descriptors[1];
@@ -1540,6 +1539,7 @@ void PgfDB::commit(object o)
free_descriptors[2] = 0; free_descriptors[2] = 0;
} }
if (fd > 0) {
if (!FlushViewOfFile(base,mmap_size)) { if (!FlushViewOfFile(base,mmap_size)) {
throw pgf_systemerror(last_error_to_errno()); throw pgf_systemerror(last_error_to_errno());
} }
@@ -1556,6 +1556,12 @@ void PgfDB::commit(object o)
ms->curr_txn_id--; ms->curr_txn_id--;
throw pgf_systemerror(last_error_to_errno()); throw pgf_systemerror(last_error_to_errno());
} }
} else {
ms->active_revision = o;
ms->top = top;
ms->free_blocks = free_blocks;
ms->free_descriptors = free_descriptors[0];
ms->curr_txn_id++;
} }
ReleaseMutex(hWriteMutex); ReleaseMutex(hWriteMutex);