From 2de17fe720bdd1f55e870032255216a66642ca49 Mon Sep 17 00:00:00 2001 From: ImBenji Date: Sun, 23 Nov 2025 05:54:33 +0000 Subject: [PATCH] Change file locking to blockingShared for improved concurrency handling in header.dart --- dart/lib/header.dart | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dart/lib/header.dart b/dart/lib/header.dart index 57fe656..3b65cfb 100644 --- a/dart/lib/header.dart +++ b/dart/lib/header.dart @@ -215,7 +215,7 @@ class SweepstoreWorkerTicket { // Offset 0 - 4 bytes 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); int id = _concurrencyHeader._header._file.readIntSync(4); _concurrencyHeader._header._file.unlockSync(_baseOffset, _baseOffset + 4); @@ -224,7 +224,7 @@ class SweepstoreWorkerTicket { // Offset 4 - 4 bytes 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); int heartbeat = _concurrencyHeader._header._file.readIntSync(4); _concurrencyHeader._header._file.unlockSync(_baseOffset + 4, _baseOffset + 8); @@ -233,7 +233,7 @@ class SweepstoreWorkerTicket { // Offset 8 - 1 byte 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); int stateValue = _concurrencyHeader._header._file.readIntSync(1); _concurrencyHeader._header._file.unlockSync(_baseOffset + 8, _baseOffset + 9); @@ -242,7 +242,7 @@ class SweepstoreWorkerTicket { // Offset 9 - 1 byte 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); int operationValue = _concurrencyHeader._header._file.readIntSync(1); _concurrencyHeader._header._file.unlockSync(_baseOffset + 9, _baseOffset + 10); @@ -251,7 +251,7 @@ class SweepstoreWorkerTicket { // Offset 10 - 8 bytes 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); int hash = _concurrencyHeader._header._file.readIntSync(8); _concurrencyHeader._header._file.unlockSync(_baseOffset + 10, _baseOffset + 18); @@ -260,7 +260,7 @@ class SweepstoreWorkerTicket { // Offset 18 - 8 bytes 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); int address = _concurrencyHeader._header._file.readIntSync(8); _concurrencyHeader._header._file.unlockSync(_baseOffset + 18, _baseOffset + 26); @@ -269,7 +269,7 @@ class SweepstoreWorkerTicket { // Offset 26 - 4 bytes 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); int size = _concurrencyHeader._header._file.readIntSync(4); _concurrencyHeader._header._file.unlockSync(_baseOffset + 26, _baseOffset + 30);