some fixes again
This commit is contained in:
@@ -72,7 +72,6 @@ class ShmRingWriter:
|
||||
self._mmap.close()
|
||||
self._file.close()
|
||||
self._unlink_if_present()
|
||||
created = not self._path.exists()
|
||||
fd = os.open(self._path, os.O_RDWR | os.O_CREAT, 0o660)
|
||||
self._file = os.fdopen(fd, "r+b", buffering=0)
|
||||
self._file.truncate(self._mapped_size)
|
||||
@@ -135,23 +134,11 @@ class ShmRingWriter:
|
||||
self._write_u64(32, 0)
|
||||
self._write_u64(40, 0)
|
||||
|
||||
def _validate_header(self) -> None:
|
||||
magic = self._mmap[:8]
|
||||
version = self._read_u32(8)
|
||||
capacity = self._read_u32(12)
|
||||
slot_size_bytes = self._read_u32(16)
|
||||
if magic != _MAGIC:
|
||||
raise RuntimeError(f"Shared memory ring magic mismatch for {self._ring_name}")
|
||||
if version != _VERSION:
|
||||
raise RuntimeError(f"Shared memory ring version mismatch for {self._ring_name}")
|
||||
if capacity != self._capacity or slot_size_bytes != self._slot_size_bytes:
|
||||
raise RuntimeError(f"Shared memory ring geometry mismatch for {self._ring_name}")
|
||||
|
||||
def _header_matches(self) -> bool:
|
||||
"""Return whether the existing segment's header matches this ring's geometry.
|
||||
|
||||
Non-throwing counterpart of `_validate_header` used by the owner to decide
|
||||
whether a same-sized pre-existing segment can be reused or must be recreated.
|
||||
Used by the owner to decide whether a same-sized pre-existing segment can be
|
||||
reused as-is or must be unlinked and recreated.
|
||||
"""
|
||||
return (
|
||||
self._mmap[:8] == _MAGIC
|
||||
|
||||
Reference in New Issue
Block a user