diff --git a/CHANGELOG.md b/CHANGELOG.md index c5d86e4..e0183a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. * [breaking] The control pipe is now provided in the `UsbDeviceBuilder` API to allow for user-provided control pipes. This makes it so that control pipes have configurable sizing. +* Don't require UsbBus to be Sync. If a UsbBus is not Sync, it can still be used to make a UsbDevice, but that UsbDevice will not be Sync (ensuring soundness). ## [0.3.2] - 2024-03-06 diff --git a/src/bus.rs b/src/bus.rs index 398b192..5c6af03 100644 --- a/src/bus.rs +++ b/src/bus.rs @@ -17,7 +17,7 @@ use portable_atomic::{AtomicPtr, Ordering}; /// take place before [`enable`](UsbBus::enable) is called. After the bus is enabled, in practice /// most access won't mutate the object itself but only endpoint-specific registers and buffers, the /// access to which is mostly arbitrated by endpoint handles. -pub trait UsbBus: Sync + Sized { +pub trait UsbBus: Sized { /// Allocates an endpoint and specified endpoint parameters. This method is called by the device /// and class implementations to allocate endpoints, and can only be called before /// [`enable`](UsbBus::enable) is called.