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

Clone run queue in rq app #1000

Merged
merged 1 commit into from
Jul 5, 2023
Merged

Conversation

tsoutsman
Copy link
Member

Avoids disabling preemption for the duration of the program which can interfere with printing to the terminal.

Avoids disabling preemption for the duration of the program which can
interfere with printing to the terminal.

Signed-off-by: Klimenty Tsoutsman <klim@tsoutsman.com>
Copy link
Member

@kevinaboos kevinaboos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@kevinaboos kevinaboos merged commit 3efa9d3 into theseus-os:theseus_main Jul 5, 2023
2 checks passed
github-actions bot pushed a commit that referenced this pull request Jul 5, 2023
This avoids disabling preemption for the duration of the program,
which can interfere with printing to the terminal.

Signed-off-by: Klimenty Tsoutsman <klim@tsoutsman.com> 3efa9d3
@tsoutsman tsoutsman mentioned this pull request Sep 8, 2023
kevinaboos pushed a commit that referenced this pull request Oct 3, 2023
…it (#1035)

* Add the `Scheduler` trait, which represents a scheduler policy.
  * By default, there is one instance of a `Scheduler` policy per CPU.
  * Support dynamically registering and switching between
    different scheduler policies on a per-CPU basis.
  * Because this is now defined in the `task` crate instead of in the
    `scheduler` crate, the `task` crate can now access all functionality
    provided by a scheduler policy, which allows for custom actions
    like setting priority or removing/adding blocked/unblocked tasks
    to/from a runqueue.

* Combine `runqueue_*` crates with their respective  and `scheduler_*` crates,
  which is an improved design because external crates should not be able to
  view or modify a scheduler policy's internal runqueue contents.
  * This design makes sense, and also prevents issues like #1000.

* Modify most applications that access runqueues via the old `runqueue_*`
  crate APIs to go through the new `Scheduler` API instead.

----------
Signed-off-by: Klimenty Tsoutsman <klim@tsoutsman.com>
Co-authored-by: Kevin Boos <kevinaboos@gmail.com>
github-actions bot pushed a commit that referenced this pull request Oct 3, 2023
…it (#1035)

* Add the `Scheduler` trait, which represents a scheduler policy.
  * By default, there is one instance of a `Scheduler` policy per CPU.
  * Support dynamically registering and switching between
    different scheduler policies on a per-CPU basis.
  * Because this is now defined in the `task` crate instead of in the
    `scheduler` crate, the `task` crate can now access all functionality
    provided by a scheduler policy, which allows for custom actions
    like setting priority or removing/adding blocked/unblocked tasks
    to/from a runqueue.

* Combine `runqueue_*` crates with their respective  and `scheduler_*` crates,
  which is an improved design because external crates should not be able to
  view or modify a scheduler policy's internal runqueue contents.
  * This design makes sense, and also prevents issues like #1000.

* Modify most applications that access runqueues via the old `runqueue_*`
  crate APIs to go through the new `Scheduler` API instead.

----------
Signed-off-by: Klimenty Tsoutsman <klim@tsoutsman.com>
Co-authored-by: Kevin Boos <kevinaboos@gmail.com> 810e12f
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.

None yet

2 participants