diff --git a/dart/lib/header.dart b/dart/lib/header.dart index 99f0fd2..57fe656 100644 --- a/dart/lib/header.dart +++ b/dart/lib/header.dart @@ -215,50 +215,64 @@ class SweepstoreWorkerTicket { // Offset 0 - 4 bytes int get identifier { + _concurrencyHeader._header._file.lockSync(FileLock.shared, _baseOffset, _baseOffset + 4); _concurrencyHeader._header._file.setPositionSync(_baseOffset); int id = _concurrencyHeader._header._file.readIntSync(4); + _concurrencyHeader._header._file.unlockSync(_baseOffset, _baseOffset + 4); return id; } // Offset 4 - 4 bytes int get workerHeartbeat { + _concurrencyHeader._header._file.lockSync(FileLock.shared, _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); return heartbeat; } // Offset 8 - 1 byte SweepstoreTicketState get ticketState { + _concurrencyHeader._header._file.lockSync(FileLock.shared, _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); return SweepstoreTicketState.values[stateValue]; } // Offset 9 - 1 byte SweepstoreTicketOperation get ticketOperation { + _concurrencyHeader._header._file.lockSync(FileLock.shared, _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); return SweepstoreTicketOperation.values[operationValue]; } // Offset 10 - 8 bytes int get keyHash { + _concurrencyHeader._header._file.lockSync(FileLock.shared, _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); return hash; } // Offset 18 - 8 bytes SweepstorePointer get writePointer { + _concurrencyHeader._header._file.lockSync(FileLock.shared, _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); return SweepstorePointer(address); } // Offset 26 - 4 bytes int get writeSize { + _concurrencyHeader._header._file.lockSync(FileLock.shared, _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); return size; }