Change file locking to blockingShared for improved concurrency handling in header.dart

This commit is contained in:
ImBenji
2025-11-23 05:54:33 +00:00
parent 6e226f402b
commit 2de17fe720

View File

@@ -215,7 +215,7 @@ class SweepstoreWorkerTicket {
// Offset 0 - 4 bytes // Offset 0 - 4 bytes
int get identifier { int get identifier {
_concurrencyHeader._header._file.lockSync(FileLock.shared, _baseOffset, _baseOffset + 4); _concurrencyHeader._header._file.lockSync(FileLock.blockingShared, _baseOffset, _baseOffset + 4);
_concurrencyHeader._header._file.setPositionSync(_baseOffset); _concurrencyHeader._header._file.setPositionSync(_baseOffset);
int id = _concurrencyHeader._header._file.readIntSync(4); int id = _concurrencyHeader._header._file.readIntSync(4);
_concurrencyHeader._header._file.unlockSync(_baseOffset, _baseOffset + 4); _concurrencyHeader._header._file.unlockSync(_baseOffset, _baseOffset + 4);
@@ -224,7 +224,7 @@ class SweepstoreWorkerTicket {
// Offset 4 - 4 bytes // Offset 4 - 4 bytes
int get workerHeartbeat { int get workerHeartbeat {
_concurrencyHeader._header._file.lockSync(FileLock.shared, _baseOffset + 4, _baseOffset + 8); _concurrencyHeader._header._file.lockSync(FileLock.blockingShared, _baseOffset + 4, _baseOffset + 8);
_concurrencyHeader._header._file.setPositionSync(_baseOffset + 4); _concurrencyHeader._header._file.setPositionSync(_baseOffset + 4);
int heartbeat = _concurrencyHeader._header._file.readIntSync(4); int heartbeat = _concurrencyHeader._header._file.readIntSync(4);
_concurrencyHeader._header._file.unlockSync(_baseOffset + 4, _baseOffset + 8); _concurrencyHeader._header._file.unlockSync(_baseOffset + 4, _baseOffset + 8);
@@ -233,7 +233,7 @@ class SweepstoreWorkerTicket {
// Offset 8 - 1 byte // Offset 8 - 1 byte
SweepstoreTicketState get ticketState { SweepstoreTicketState get ticketState {
_concurrencyHeader._header._file.lockSync(FileLock.shared, _baseOffset + 8, _baseOffset + 9); _concurrencyHeader._header._file.lockSync(FileLock.blockingShared, _baseOffset + 8, _baseOffset + 9);
_concurrencyHeader._header._file.setPositionSync(_baseOffset + 8); _concurrencyHeader._header._file.setPositionSync(_baseOffset + 8);
int stateValue = _concurrencyHeader._header._file.readIntSync(1); int stateValue = _concurrencyHeader._header._file.readIntSync(1);
_concurrencyHeader._header._file.unlockSync(_baseOffset + 8, _baseOffset + 9); _concurrencyHeader._header._file.unlockSync(_baseOffset + 8, _baseOffset + 9);
@@ -242,7 +242,7 @@ class SweepstoreWorkerTicket {
// Offset 9 - 1 byte // Offset 9 - 1 byte
SweepstoreTicketOperation get ticketOperation { SweepstoreTicketOperation get ticketOperation {
_concurrencyHeader._header._file.lockSync(FileLock.shared, _baseOffset + 9, _baseOffset + 10); _concurrencyHeader._header._file.lockSync(FileLock.blockingShared, _baseOffset + 9, _baseOffset + 10);
_concurrencyHeader._header._file.setPositionSync(_baseOffset + 9); _concurrencyHeader._header._file.setPositionSync(_baseOffset + 9);
int operationValue = _concurrencyHeader._header._file.readIntSync(1); int operationValue = _concurrencyHeader._header._file.readIntSync(1);
_concurrencyHeader._header._file.unlockSync(_baseOffset + 9, _baseOffset + 10); _concurrencyHeader._header._file.unlockSync(_baseOffset + 9, _baseOffset + 10);
@@ -251,7 +251,7 @@ class SweepstoreWorkerTicket {
// Offset 10 - 8 bytes // Offset 10 - 8 bytes
int get keyHash { int get keyHash {
_concurrencyHeader._header._file.lockSync(FileLock.shared, _baseOffset + 10, _baseOffset + 18); _concurrencyHeader._header._file.lockSync(FileLock.blockingShared, _baseOffset + 10, _baseOffset + 18);
_concurrencyHeader._header._file.setPositionSync(_baseOffset + 10); _concurrencyHeader._header._file.setPositionSync(_baseOffset + 10);
int hash = _concurrencyHeader._header._file.readIntSync(8); int hash = _concurrencyHeader._header._file.readIntSync(8);
_concurrencyHeader._header._file.unlockSync(_baseOffset + 10, _baseOffset + 18); _concurrencyHeader._header._file.unlockSync(_baseOffset + 10, _baseOffset + 18);
@@ -260,7 +260,7 @@ class SweepstoreWorkerTicket {
// Offset 18 - 8 bytes // Offset 18 - 8 bytes
SweepstorePointer get writePointer { SweepstorePointer get writePointer {
_concurrencyHeader._header._file.lockSync(FileLock.shared, _baseOffset + 18, _baseOffset + 26); _concurrencyHeader._header._file.lockSync(FileLock.blockingShared, _baseOffset + 18, _baseOffset + 26);
_concurrencyHeader._header._file.setPositionSync(_baseOffset + 18); _concurrencyHeader._header._file.setPositionSync(_baseOffset + 18);
int address = _concurrencyHeader._header._file.readIntSync(8); int address = _concurrencyHeader._header._file.readIntSync(8);
_concurrencyHeader._header._file.unlockSync(_baseOffset + 18, _baseOffset + 26); _concurrencyHeader._header._file.unlockSync(_baseOffset + 18, _baseOffset + 26);
@@ -269,7 +269,7 @@ class SweepstoreWorkerTicket {
// Offset 26 - 4 bytes // Offset 26 - 4 bytes
int get writeSize { int get writeSize {
_concurrencyHeader._header._file.lockSync(FileLock.shared, _baseOffset + 26, _baseOffset + 30); _concurrencyHeader._header._file.lockSync(FileLock.blockingShared, _baseOffset + 26, _baseOffset + 30);
_concurrencyHeader._header._file.setPositionSync(_baseOffset + 26); _concurrencyHeader._header._file.setPositionSync(_baseOffset + 26);
int size = _concurrencyHeader._header._file.readIntSync(4); int size = _concurrencyHeader._header._file.readIntSync(4);
_concurrencyHeader._header._file.unlockSync(_baseOffset + 26, _baseOffset + 30); _concurrencyHeader._header._file.unlockSync(_baseOffset + 26, _baseOffset + 30);