Skip to content

Fixes for issues triggered by Windows CI - #227

Open
anjohnson wants to merge 3 commits into
epics-base:masterfrom
anjohnson:windows-fixes
Open

Fixes for issues triggered by Windows CI#227
anjohnson wants to merge 3 commits into
epics-base:masterfrom
anjohnson:windows-fixes

Conversation

@anjohnson

@anjohnson anjohnson commented Jul 28, 2026

Copy link
Copy Markdown
Member

Move stopRequest() calls in responseHandlers.cpp RequesterImpl::send() methods to before the payload gets serialized. See Matej's similar move and comments in the ChannelGet code when he was working on performance. The testChannelAccess test 148 fails with "other request pending" because of this ordering.

The factory stop method prevents crashes in the testCaProvider code during process shutdown.

anjohnson and others added 2 commits July 22, 2026 23:03
Two timing-sensitive failures seen on the windows-x64-mingw CI runner
(statically linked, single CPU):

testChannelAccess test 148 "an array setLength failed (4)".
Move stopRequest() before the payload block in
several ServerChannel...RequesterImpl::send() methods.

testCaProvider crash on exit: Release the global testChannelProvider
deterministically on the main thread before returning from main().

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Now the inverse of start() by unregistering the ca provider.
stop() is safe to call more than once or without a matching start().

Note this does not force teardown of a CAChannelProvider instance already
handed out: that instance (and its worker threads and CA context) stays
alive until its owners release their references. Callers wanting a
controlled teardown must drop those references and call stop(), rather
than relying on a static destructor at process exit -- which is unsafe on
Windows, where the EPICS exit handlers are not run when main() returns.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@AppVeyorBot

Copy link
Copy Markdown

@anjohnson

Copy link
Copy Markdown
Member Author

Added another fix for requester callback diagnostics in testChannelAccess: Collect cout messages and output them using testDiag().

@AppVeyorBot

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants