feat(maitake-sync): mutex-traits
integration
#1384
ci.yml
on: pull_request
changed_paths
11s
cargo check (host)
1m 55s
rustfmt
15s
clippy
2m 4s
cargo test (host)
3m 48s
build boot image (x86_64)
1m 27s
cargo test (cross x64)
1m 41s
docs
2m 13s
Loom tests (cordyceps)
1m 32s
Miri tests (cordyceps)
2m 9s
Tests (maitake, no-default-features)
1m 39s
Loom tests (maitake)
4m 23s
Miri tests (maitake)
1m 4s
Loom tests (mycelium-util)
1m 0s
all_systems_go
0s
Annotations
13 errors and 8 warnings
Miri tests (maitake)
Process completed with exit code 104.
|
build boot image (x86_64)
Process completed with exit code 101.
|
cargo test (cross x64)
Process completed with exit code 101.
|
cargo check (host):
src/drivers/ps2_keyboard.rs#L20
error[E0277]: `std::cell::UnsafeCell<wait_queue::Node>` cannot be shared between threads safely
--> src/drivers/ps2_keyboard.rs:20:22
|
20 | static PS2_KEYBOARD: Ps2Keyboard = Ps2Keyboard {
| ^^^^^^^^^^^ `std::cell::UnsafeCell<wait_queue::Node>` cannot be shared between threads safely
|
= help: within `wait_queue::Waiter`, the trait `Sync` is not implemented for `std::cell::UnsafeCell<wait_queue::Node>`
note: required because it appears within the type `maitake_sync::loom::inner::cell::UnsafeCell<wait_queue::Node>`
--> /home/runner/work/mycelium/mycelium/maitake-sync/src/loom.rs:311:27
|
311 | pub(crate) struct UnsafeCell<T: ?Sized>(core::cell::UnsafeCell<T>);
| ^^^^^^^^^^
note: required because it appears within the type `wait_queue::Waiter`
--> /home/runner/work/mycelium/mycelium/maitake-sync/src/wait_queue.rs:243:8
|
243 | struct Waiter {
| ^^^^^^
= note: required for `List<wait_queue::Waiter>` to implement `Sync`
= note: 1 redundant requirement hidden
= note: required for `mycelium_util::sync::blocking::Mutex<List<wait_queue::Waiter>>` to implement `Sync`
note: required because it appears within the type `WaitQueue`
--> /home/runner/work/mycelium/mycelium/maitake-sync/src/wait_queue.rs:186:12
|
186 | pub struct WaitQueue<Lock: ScopedRawMutex = DefaultMutex> {
| ^^^^^^^^^
note: required because it appears within the type `Ps2Keyboard`
--> src/drivers/ps2_keyboard.rs:6:12
|
6 | pub struct Ps2Keyboard {
| ^^^^^^^^^^^
= note: shared static variables must have a type that implements `Sync`
|
cargo check (host):
src/rt.rs#L56
error[E0277]: `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` cannot be shared between threads safely
--> src/rt.rs:56:15
|
56 | static TIMER: spin::InitOnce<time::Timer> = spin::InitOnce::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` cannot be shared between threads safely
|
= help: within `maitake::time::timer::sleep::Entry`, the trait `Sync` is not implemented for `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>`
note: required because it appears within the type `maitake::loom::inner::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>`
--> /home/runner/work/mycelium/mycelium/maitake/src/loom.rs:204:27
|
204 | pub(crate) struct UnsafeCell<T: ?Sized>(core::cell::UnsafeCell<T>);
| ^^^^^^^^^^
note: required because it appears within the type `maitake::time::timer::sleep::Entry`
--> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/sleep.rs:39:19
|
39 | pub(super) struct Entry {
| ^^^^^
= note: required for `List<maitake::time::timer::sleep::Entry>` to implement `Sync`
= note: required because it appears within the type `[List<maitake::time::timer::sleep::Entry>; 64]`
note: required because it appears within the type `maitake::time::timer::wheel::Wheel`
--> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/wheel.rs:20:8
|
20 | struct Wheel {
| ^^^^^
= note: required because it appears within the type `[maitake::time::timer::wheel::Wheel; 6]`
note: required because it appears within the type `maitake::time::timer::wheel::Core`
--> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/wheel.rs:11:28
|
11 | pub(in crate::time) struct Core {
| ^^^^
= note: required for `mycelium_util::sync::blocking::Mutex<maitake::time::timer::wheel::Core>` to implement `Sync`
note: required because it appears within the type `Timer`
--> /home/runner/work/mycelium/mycelium/maitake/src/time/timer.rs:161:12
|
161 | pub struct Timer {
| ^^^^^
= note: required for `InitOnce<Timer>` to implement `Sync`
= note: shared static variables must have a type that implements `Sync`
|
cargo check (host)
Process completed with exit code 1.
|
clippy:
src/drivers/ps2_keyboard.rs#L20
error[E0277]: `std::cell::UnsafeCell<maitake::sync::wait_queue::Node>` cannot be shared between threads safely
--> src/drivers/ps2_keyboard.rs:20:22
|
20 | static PS2_KEYBOARD: Ps2Keyboard = Ps2Keyboard {
| ^^^^^^^^^^^ `std::cell::UnsafeCell<maitake::sync::wait_queue::Node>` cannot be shared between threads safely
|
= help: within `maitake::sync::wait_queue::Waiter`, the trait `std::marker::Sync` is not implemented for `std::cell::UnsafeCell<maitake::sync::wait_queue::Node>`
note: required because it appears within the type `maitake_sync::loom::inner::cell::UnsafeCell<maitake::sync::wait_queue::Node>`
--> /home/runner/work/mycelium/mycelium/maitake-sync/src/loom.rs:311:27
|
311 | pub(crate) struct UnsafeCell<T: ?Sized>(core::cell::UnsafeCell<T>);
| ^^^^^^^^^^
note: required because it appears within the type `maitake::sync::wait_queue::Waiter`
--> /home/runner/work/mycelium/mycelium/maitake-sync/src/wait_queue.rs:243:8
|
243 | struct Waiter {
| ^^^^^^
= note: required for `mycelium_util::cordyceps::List<maitake::sync::wait_queue::Waiter>` to implement `std::marker::Sync`
= note: 1 redundant requirement hidden
= note: required for `mycelium_util::sync::blocking::Mutex<mycelium_util::cordyceps::List<maitake::sync::wait_queue::Waiter>>` to implement `std::marker::Sync`
note: required because it appears within the type `maitake::sync::WaitQueue`
--> /home/runner/work/mycelium/mycelium/maitake-sync/src/wait_queue.rs:186:12
|
186 | pub struct WaitQueue<Lock: ScopedRawMutex = DefaultMutex> {
| ^^^^^^^^^
note: required because it appears within the type `drivers::ps2_keyboard::Ps2Keyboard`
--> src/drivers/ps2_keyboard.rs:6:12
|
6 | pub struct Ps2Keyboard {
| ^^^^^^^^^^^
= note: shared static variables must have a type that implements `Sync`
|
clippy:
src/rt.rs#L56
error[E0277]: `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` cannot be shared between threads safely
--> src/rt.rs:56:15
|
56 | static TIMER: spin::InitOnce<time::Timer> = spin::InitOnce::uninitialized();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>` cannot be shared between threads safely
|
= help: within `maitake::time::timer::sleep::Entry`, the trait `std::marker::Sync` is not implemented for `std::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>`
note: required because it appears within the type `maitake::loom::inner::cell::UnsafeCell<mycelium_util::cordyceps::list::Links<maitake::time::timer::sleep::Entry>>`
--> /home/runner/work/mycelium/mycelium/maitake/src/loom.rs:204:27
|
204 | pub(crate) struct UnsafeCell<T: ?Sized>(core::cell::UnsafeCell<T>);
| ^^^^^^^^^^
note: required because it appears within the type `maitake::time::timer::sleep::Entry`
--> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/sleep.rs:39:19
|
39 | pub(super) struct Entry {
| ^^^^^
= note: required for `mycelium_util::cordyceps::List<maitake::time::timer::sleep::Entry>` to implement `std::marker::Sync`
= note: required because it appears within the type `[mycelium_util::cordyceps::List<maitake::time::timer::sleep::Entry>; 64]`
note: required because it appears within the type `maitake::time::timer::wheel::Wheel`
--> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/wheel.rs:20:8
|
20 | struct Wheel {
| ^^^^^
= note: required because it appears within the type `[maitake::time::timer::wheel::Wheel; 6]`
note: required because it appears within the type `maitake::time::timer::wheel::Core`
--> /home/runner/work/mycelium/mycelium/maitake/src/time/timer/wheel.rs:11:28
|
11 | pub(in crate::time) struct Core {
| ^^^^
= note: required for `mycelium_util::sync::blocking::Mutex<maitake::time::timer::wheel::Core>` to implement `std::marker::Sync`
note: required because it appears within the type `maitake::time::Timer`
--> /home/runner/work/mycelium/mycelium/maitake/src/time/timer.rs:161:12
|
161 | pub struct Timer {
| ^^^^^
= note: required for `mycelium_util::sync::InitOnce<maitake::time::Timer>` to implement `std::marker::Sync`
= note: shared static variables must have a type that implements `Sync`
|
clippy
Process completed with exit code 1.
|
docs:
trace/src/writer.rs#L207
error: unresolved link to `maitake_sync::blocking:::MutexGuard`
--> trace/src/writer.rs:207:21
|
207 | /// [`MutexGuard`]: maitake_sync::blocking:::MutexGuard
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `maitake_sync` in scope
|
= note: `-D rustdoc::broken-intra-doc-links` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(rustdoc::broken_intra_doc_links)]`
|
docs:
trace/src/writer.rs#L208
error: unresolved link to `mycelium_util::blocking::Mutex`
--> trace/src/writer.rs:208:16
|
208 | /// [`Mutex`]: mycelium_util::blocking::Mutex
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no item named `blocking` in module `mycelium_util`
|
docs
Process completed with exit code 1.
|
cargo test (host)
Process completed with exit code 101.
|
Loom tests (mycelium-util)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Miri tests (maitake)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Loom tests (cordyceps)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
clippy
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Miri tests (cordyceps)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
docs
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
cargo test (host)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Loom tests (maitake)
The following actions uses Node.js version which is deprecated and will be forced to run on node20: extractions/setup-just@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|