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

i#6831 sched refactor, step 2: Split out scheduler_impl.cpp #7077

Merged
merged 5 commits into from
Nov 12, 2024

Conversation

derekbruening
Copy link
Contributor

Moves the scheduler_impl_tmpl_t implementation out of scheduler.cpp and into a new file scheduler_impl.cpp.

Issue: #6831

This first step toward separating key scheduler code into separate
subclasses by mode of operation adds the pImpl idiom to the scheduler:
the scheduler_t implementation is moved to a private class
scheduler_impl_t, to let us (in a future step) create the appropriate
subclass without changing callers who construct a scheduler_t.  This
also helps to split up and modularize the enormous scheduler class.

A future step will move the scheduler_impl_t code into a new file
scheduler_impl.cpp.  That was separated out to make the diff easier to
read here.

The bulk of the changes involve:
+ The name change scheduler_tmpl_t to scheduler_impl_tmpl_t.
+ Having to qualify enum types as we do not have C++20's using enum.
+ Having to refer to types in another class now that the impl class
  is separate from the outer class.
+ Moving inlined routines out of scheduler.h now that the implementation
  is private and scheduler_impl_tmpl_t is an incomplete type in scheduler.h.
+ Some sched_type_t qualifications are removed due to new (private) using
  statements to make the code more readable.

Issue: #6831
Moves the scheduler_impl_tmpl_t implementation out of scheduler.cpp
and into a new file scheduler_impl.cpp.

Issue: #6831
Base automatically changed from i6831-refactor-scheduler-pimpl to master November 12, 2024 16:44
@derekbruening derekbruening merged commit 52ba775 into master Nov 12, 2024
17 checks passed
@derekbruening derekbruening deleted the i6831-scheduler-impl-file branch November 12, 2024 18:44
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