Conversation
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1f38d3a to
4600684
Compare
4600684 to
80bfa7b
Compare
Reconcile the static-library / minimal-symbol-export build (#211) and the python-casacore guard removal (#212) from main with this branch's write support. Conflict resolutions: - 001-casacore-cmake.patch: union of main's static-monolith hunks (disabled apps/ subdirs, ZLIB linkage, PUBLIC/PRIVATE link specs, abbreviated index hashes) and this branch's write-locking source sections (FileLocker, LockFile, TableProxy). Only the TableProxy.cc index line conflicted; kept this branch's post-write-locking blob hash. - src/arcae/__init__.py: took main's guard/import removal (#212), kept version. - pyproject.toml, tbump.toml: kept 0.4.0-alpha.4. - HISTORY.rst: kept both changelog sections. Validated: vcpkg applies the merged patch to casacore v3.7.1 cleanly; full .venv build succeeds; test suite 32 passed, 4 skipped, 1 xfailed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Incorporate the casacore patch whitespace cleanup (#215) and the pytest != 9.1.0 restriction (#214) from main. Resolve the 001-casacore-cmake.patch conflict by keeping the write-locking functionality (Bool TableProxy::lock) and applying main's whitespace elision. Additionally elide whitespace-only changes the write-locking work introduced into FileLocker.cc/LockFile.cc, restoring the pristine casacore indentation. The patch applies strict-clean to casacore 3.7.1 with no whitespace warnings, and produces output identical (modulo whitespace) to the previous patch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
arcae confines each casacore Table to its own thread and acquires/releases a lock around every operation. Auto locking retains locks across operations, so a retained reader lock on one IsolatedTableProxy instance deadlocks the in-process multi-reader/single-writer coordination that serialises a writer against readers on other instances. Move everything onto explicit user locking instead. - FileLocker: share a single LockState across every FileLocker over the same (lock-file path, start, length). POSIX advisory locks are owned per (process, inode), so overlapping same-process requests silently replace rather than block; routing them through one shared LockState gives real multi-reader/single-writer semantics, with only the first acquirer taking and the last releaser dropping the real fcntl lock. - table_factory: CoerceToUserLocking() rewrites auto/autonoread lock options to their user/usernoread equivalents so arcae's explicit locks fully control lock lifetime. - IsolatedTableProxy: hold a read lock on the source proxy while the functor runs, since under user locking casacore requires the source table locked while e.g. a TAQL command builds a reference table from it. - parallel_write_test: drive the test through user locking with explicit write locks; add concurrent_rw_test exercising cross-instance coordination.
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR tracks the 0.4.0 development branch, containing write support for arcae.