Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split monitoring router into two radio-specific receiver threads #3558

Merged
merged 6 commits into from
Aug 5, 2024

Conversation

benclifford
Copy link
Collaborator

This is part of two ongoing strands of development:

  • Preparation for arbitrary monitoring radio receivers, where UDP is not special compared to other methods. This code separates out the UDP specific code making it easier to move around later (see development in PR [not for merge] start a monitoring radio plugin API #3315)

  • Avoiding poll-one-thing, poll-another-thing tight polling loops in favour of multiple blocking loops. The two router receiver sections used to run in a single tight non-blocking loop, each component waiting loop_freq (= 10 ms) for something to happen. After this PR, the separated loops are more amenable to longer blocking times - they only need to discover when exit event is set which probably can be more on the order of 1 second.

Changed Behaviour

no functional changes - time of delivery of monitoring messages will be very slightly different, which in the race-condition prone parsl environment might be relevant

Type of change

  • Code maintenance/cleanup

This is part of two ongoing strands of development:

* Preparation for arbitrary monitoring radio receivers, where UDP is not
special compared to other methods. This code separates out the UDP specific
code making it easier to move around later (see development in PR #3315)

* Avoiding poll-one-thing, poll-another-thing tight polling loops in
favour of multiple blocking loops. The two router receiver sections used
to run in a single tight non-blocking loop, each component waiting
loop_freq (= 10 ms) for something to happen. After this PR, the separated
loops are more amenable to longer blocking times - they only need to
discover when exit event is set which probably can be more on the order
of 1 second.
@benclifford
Copy link
Collaborator Author

failed in CI with a shutdown-of-router related error - i'll investigate more

@benclifford benclifford marked this pull request as draft July 31, 2024 12:50
@benclifford benclifford marked this pull request as ready for review August 3, 2024 18:14
@benclifford benclifford merged commit d8e8d4b into master Aug 5, 2024
7 checks passed
@benclifford benclifford deleted the benc-split-udp-zmq-router branch August 5, 2024 14:29
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