Skip to content

improve maitake timer wheel #1333

improve maitake timer wheel

improve maitake timer wheel #1333

Triggered via pull request February 2, 2024 17:01
@hawkwhawkw
synchronize #475
eliza/clocky
Status Failure
Total duration 6h 0m 39s
Artifacts

ci.yml

on: pull_request
changed_paths
7s
changed_paths
cargo check (host)
3m 39s
cargo check (host)
rustfmt
13s
rustfmt
clippy
2m 55s
clippy
cargo test (host)
16m 40s
cargo test (host)
build boot image (x86_64)
3m 17s
build boot image (x86_64)
cargo test (cross x64)
8m 28s
cargo test (cross x64)
docs
2m 6s
docs
Loom tests (cordyceps)
1m 38s
Loom tests (cordyceps)
Miri tests (codyceps)
1m 59s
Miri tests (codyceps)
Tests (maitake, no-default-features)
1m 41s
Tests (maitake, no-default-features)
Loom tests (maitake)
6h 0m
Loom tests (maitake)
Loom tests (mycelium-util)
51s
Loom tests (mycelium-util)
Fit to window
Zoom out
Zoom in

Annotations

13 errors and 47 warnings
Tests (maitake, no-default-features)
Process completed with exit code 101.
docs: maitake/src/time/clock.rs#L96
error: missing documentation for an associated function --> maitake/src/time/clock.rs:96:5 | 96 | pub const fn new(tick_duration: Duration, now: fn() -> Ticks) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `-D missing-docs` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(missing_docs)]`
docs: maitake/src/time/clock.rs#L105
error: missing documentation for a method --> maitake/src/time/clock.rs:105:5 | 105 | pub const fn named(self, name: &'static str) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L118
error: missing documentation for a method --> maitake/src/time/clock.rs:118:5 | 118 | pub fn tick_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L123
error: missing documentation for a method --> maitake/src/time/clock.rs:123:5 | 123 | pub fn now(&self) -> Instant { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L130
error: missing documentation for a method --> maitake/src/time/clock.rs:130:5 | 130 | pub fn max_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L135
error: missing documentation for a method --> maitake/src/time/clock.rs:135:5 | 135 | pub fn name(&self) -> Option<&'static str> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/timer.rs#L307
error: missing documentation for a method --> maitake/src/time/timer.rs:307:5 | 307 | pub fn now(&self) -> Instant { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L59
error: public documentation for `Clock` links to private item `Ticks` --> maitake/src/time/clock.rs:59:20 | 59 | /// timestamp in [`Ticks`], and a [`Duration`] that defines the amount of time | ^^^^^ this item is private | = note: this link will resolve properly if you pass `--document-private-items` = note: `-D rustdoc::private-intra-doc-links` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(rustdoc::private_intra_doc_links)]`
docs: maitake/src/time/timer.rs#L65
error: unresolved link to `Timer::advance` --> maitake/src/time/timer.rs:65:58 | 65 | /// must be driven by a *time source*, which calls the [`Timer::advance`] method | ^^^^^^^^^^^^^^ the struct `Timer` has no field or associated item named `advance` | = note: `-D rustdoc::broken-intra-doc-links` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(rustdoc::broken_intra_doc_links)]`
docs: maitake/src/time/timer.rs#L66
error: unresolved link to `Timer::force_advance` --> maitake/src/time/timer.rs:66:47 | 66 | /// and/or the [`Timer::pend_duration`] and [`Timer::force_advance`] methods. | ^^^^^^^^^^^^^^^^^^^^ the struct `Timer` has no field or associated item named `force_advance`
cargo test (host)
Process completed with exit code 100.
Loom tests (maitake)
The operation was canceled.
Loom tests (mycelium-util)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: extractions/setup-just@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Loom tests (cordyceps)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: extractions/setup-just@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Miri tests (codyceps)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: extractions/setup-just@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
docs
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: extractions/setup-just@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
docs: maitake/src/time/timer.rs#L313
warning: function cannot return without recursing --> maitake/src/time/timer.rs:313:5 | 313 | pub fn clock(&self) -> &Clock { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing 314 | self.clock() | ------------ recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default
docs: maitake/src/time/timer.rs#L314
warning: function cannot return without recursing --> maitake/src/time/timer.rs:313:5 | 313 | pub fn clock(&self) -> &Clock { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing 314 | self.clock() | ------------ recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default
docs: maitake/src/time/timer/wheel.rs#L62
warning: method `now` is never used --> maitake/src/time/timer/wheel.rs:98:19 | 62 | impl Core { | --------- method in this implementation ... 98 | pub(super) fn now(&self) -> Ticks { | ^^^ | = note: `#[warn(dead_code)]` on by default
docs: maitake/src/time/timer/wheel.rs#L98
warning: method `now` is never used --> maitake/src/time/timer/wheel.rs:98:19 | 62 | impl Core { | --------- method in this implementation ... 98 | pub(super) fn now(&self) -> Ticks { | ^^^ | = note: `#[warn(dead_code)]` on by default
docs: maitake/src/time/clock.rs#L96
warning: missing documentation for an associated function --> maitake/src/time/clock.rs:96:5 | 96 | pub const fn new(tick_duration: Duration, now: fn() -> Ticks) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: the lint level is defined here --> maitake/src/time.rs:45:9 | 45 | #![warn(missing_docs, missing_debug_implementations)] | ^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L105
warning: missing documentation for a method --> maitake/src/time/clock.rs:105:5 | 105 | pub const fn named(self, name: &'static str) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L118
warning: missing documentation for a method --> maitake/src/time/clock.rs:118:5 | 118 | pub fn tick_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L123
warning: missing documentation for a method --> maitake/src/time/clock.rs:123:5 | 123 | pub fn now(&self) -> Instant { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L130
warning: missing documentation for a method --> maitake/src/time/clock.rs:130:5 | 130 | pub fn max_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docs: maitake/src/time/clock.rs#L135
warning: missing documentation for a method --> maitake/src/time/clock.rs:135:5 | 135 | pub fn name(&self) -> Option<&'static str> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
clippy
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: extractions/setup-just@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
clippy: maitake/src/time/timer.rs#L313
warning: function cannot return without recursing --> maitake/src/time/timer.rs:313:5 | 313 | pub fn clock(&self) -> &Clock { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing 314 | self.clock() | ------------ recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default
clippy: maitake/src/time/timer.rs#L314
warning: function cannot return without recursing --> maitake/src/time/timer.rs:313:5 | 313 | pub fn clock(&self) -> &Clock { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing 314 | self.clock() | ------------ recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default
clippy: maitake/src/time/timer/wheel.rs#L62
warning: method `now` is never used --> maitake/src/time/timer/wheel.rs:98:19 | 62 | impl Core { | --------- method in this implementation ... 98 | pub(super) fn now(&self) -> Ticks { | ^^^ | = note: `#[warn(dead_code)]` on by default
clippy: maitake/src/time/timer/wheel.rs#L98
warning: method `now` is never used --> maitake/src/time/timer/wheel.rs:98:19 | 62 | impl Core { | --------- method in this implementation ... 98 | pub(super) fn now(&self) -> Ticks { | ^^^ | = note: `#[warn(dead_code)]` on by default
clippy: maitake/src/time/clock.rs#L151
warning: this function has an empty `#[must_use]` attribute, but returns a type already marked as `#[must_use]` --> maitake/src/time/clock.rs:151:1 | 151 | / pub(in crate::time) fn dur_to_ticks( 152 | | tick_duration: Duration, 153 | | dur: Duration, 154 | | ) -> Result<Ticks, TimerError> { | |______________________________^ | = help: either add some descriptive text or remove the attribute = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use = note: `#[warn(clippy::double_must_use)]` on by default
clippy: maitake/src/time/timer.rs#L313
warning: parameter is only used in recursion --> maitake/src/time/timer.rs:313:19 | 313 | pub fn clock(&self) -> &Clock { | ^^^^ | note: parameter used here --> maitake/src/time/timer.rs:314:9 | 314 | self.clock() | ^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#only_used_in_recursion = note: `#[warn(clippy::only_used_in_recursion)]` on by default
clippy: maitake/src/time/clock.rs#L96
warning: missing documentation for an associated function --> maitake/src/time/clock.rs:96:5 | 96 | pub const fn new(tick_duration: Duration, now: fn() -> Ticks) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: the lint level is defined here --> maitake/src/time.rs:45:9 | 45 | #![warn(missing_docs, missing_debug_implementations)] | ^^^^^^^^^^^^
clippy: maitake/src/time/clock.rs#L105
warning: missing documentation for a method --> maitake/src/time/clock.rs:105:5 | 105 | pub const fn named(self, name: &'static str) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
clippy: maitake/src/time/clock.rs#L118
warning: missing documentation for a method --> maitake/src/time/clock.rs:118:5 | 118 | pub fn tick_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
clippy: maitake/src/time/clock.rs#L123
warning: missing documentation for a method --> maitake/src/time/clock.rs:123:5 | 123 | pub fn now(&self) -> Instant { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/timer.rs#L313
warning: function cannot return without recursing --> maitake/src/time/timer.rs:313:5 | 313 | pub fn clock(&self) -> &Clock { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing 314 | self.clock() | ------------ recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default
cargo check (host): maitake/src/time/timer.rs#L314
warning: function cannot return without recursing --> maitake/src/time/timer.rs:313:5 | 313 | pub fn clock(&self) -> &Clock { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing 314 | self.clock() | ------------ recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default
cargo check (host): maitake/src/time/timer/wheel.rs#L62
warning: method `now` is never used --> maitake/src/time/timer/wheel.rs:98:19 | 62 | impl Core { | --------- method in this implementation ... 98 | pub(super) fn now(&self) -> Ticks { | ^^^ | = note: `#[warn(dead_code)]` on by default
cargo check (host): maitake/src/time/timer/wheel.rs#L98
warning: method `now` is never used --> maitake/src/time/timer/wheel.rs:98:19 | 62 | impl Core { | --------- method in this implementation ... 98 | pub(super) fn now(&self) -> Ticks { | ^^^ | = note: `#[warn(dead_code)]` on by default
cargo check (host): maitake/src/time/clock.rs#L96
warning: missing documentation for an associated function --> maitake/src/time/clock.rs:96:5 | 96 | pub const fn new(tick_duration: Duration, now: fn() -> Ticks) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: the lint level is defined here --> maitake/src/time.rs:45:9 | 45 | #![warn(missing_docs, missing_debug_implementations)] | ^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L105
warning: missing documentation for a method --> maitake/src/time/clock.rs:105:5 | 105 | pub const fn named(self, name: &'static str) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L118
warning: missing documentation for a method --> maitake/src/time/clock.rs:118:5 | 118 | pub fn tick_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L123
warning: missing documentation for a method --> maitake/src/time/clock.rs:123:5 | 123 | pub fn now(&self) -> Instant { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L130
warning: missing documentation for a method --> maitake/src/time/clock.rs:130:5 | 130 | pub fn max_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L135
warning: missing documentation for a method --> maitake/src/time/clock.rs:135:5 | 135 | pub fn name(&self) -> Option<&'static str> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/timer.rs#L313
warning: function cannot return without recursing --> maitake/src/time/timer.rs:313:5 | 313 | pub fn clock(&self) -> &Clock { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing 314 | self.clock() | ------------ recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default
cargo check (host): maitake/src/time/timer.rs#L314
warning: function cannot return without recursing --> maitake/src/time/timer.rs:313:5 | 313 | pub fn clock(&self) -> &Clock { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing 314 | self.clock() | ------------ recursive call site | = help: a `loop` may express intention better if this is on purpose = note: `#[warn(unconditional_recursion)]` on by default
cargo check (host): maitake/src/time/timer/wheel.rs#L62
warning: method `now` is never used --> maitake/src/time/timer/wheel.rs:98:19 | 62 | impl Core { | --------- method in this implementation ... 98 | pub(super) fn now(&self) -> Ticks { | ^^^ | = note: `#[warn(dead_code)]` on by default
cargo check (host): maitake/src/time/timer/wheel.rs#L98
warning: method `now` is never used --> maitake/src/time/timer/wheel.rs:98:19 | 62 | impl Core { | --------- method in this implementation ... 98 | pub(super) fn now(&self) -> Ticks { | ^^^ | = note: `#[warn(dead_code)]` on by default
cargo check (host): maitake/src/time/clock.rs#L96
warning: missing documentation for an associated function --> maitake/src/time/clock.rs:96:5 | 96 | pub const fn new(tick_duration: Duration, now: fn() -> Ticks) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: the lint level is defined here --> maitake/src/time.rs:45:9 | 45 | #![warn(missing_docs, missing_debug_implementations)] | ^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L105
warning: missing documentation for a method --> maitake/src/time/clock.rs:105:5 | 105 | pub const fn named(self, name: &'static str) -> Self { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L118
warning: missing documentation for a method --> maitake/src/time/clock.rs:118:5 | 118 | pub fn tick_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L123
warning: missing documentation for a method --> maitake/src/time/clock.rs:123:5 | 123 | pub fn now(&self) -> Instant { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L130
warning: missing documentation for a method --> maitake/src/time/clock.rs:130:5 | 130 | pub fn max_duration(&self) -> Duration { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo check (host): maitake/src/time/clock.rs#L135
warning: missing documentation for a method --> maitake/src/time/clock.rs:135:5 | 135 | pub fn name(&self) -> Option<&'static str> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cargo test (host)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: extractions/setup-just@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
Loom tests (maitake)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: extractions/setup-just@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.