Update Bookmark trigger functionality#559
Merged
Hirogen merged 2 commits intoDevelopmentfrom Apr 8, 2026
Merged
Conversation
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 pull request introduces several improvements to thread safety, event handling, and test coverage in the bookmark and highlight features. The most significant changes are the addition of locking to the
BookmarkDataProviderto ensure thread safety, improvements to asynchronous event handling inLogWindow, and the introduction of comprehensive tests for highlight and bookmark logic.Thread safety and synchronization improvements:
_bookmarkListLock) to theBookmarkDataProviderand wrapped all public methods that mutate or access the bookmarks list with this lock to prevent race conditions in multi-threaded scenarios. [1] [2] [3] [4] [5]_logEventArgsEventfrom aManualResetEventto anAutoResetEventinLogWindowfor correct event signaling semantics.Asynchronous event handling and UI updates:
Task.RunwithBeginInvokefor UI-related updates inLogWindowto ensure operations like setting bookmarks and selecting lines are marshaled to the UI thread, preventing potential cross-thread exceptions. [1] [2] [3] [4]_timeShiftSyncTaskand_logEventHandlerTask) to useTask.Factory.StartNewwithTaskCreationOptions.LongRunningfor better thread management.Test coverage and regression tests:
HighlightBookmarkTriggerTestswith comprehensive tests for highlight actions, bookmark provider logic, and closure bug regression, ensuring correct behavior and guarding against common C# closure pitfalls.Code robustness and minor fixes:
FilterParamsnull-safe to prevent possibleNullReferenceException.System.EventArgstoEventArgs) for consistency.These changes collectively improve the stability, maintainability, and correctness of bookmark and highlight handling, especially in multi-threaded and UI contexts.