-
Notifications
You must be signed in to change notification settings - Fork 599
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
Change Arc<Mutex<ShardManager>> to Arc<ShardManager> #2523
Conversation
Has the side effect of (theoretically) fixing shutdown by removing the major deadlock Required converting all `&mut self` methods on ShardManager to &self
Accidentally opened as ready for merge, converted to draft as I don't want a round 2 of last time we tried fixing shutdown. I'm going to fire up a local bot as a test and leave it running for a few days. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me - let's hope this works. Your doctests are failing, though.
Turns out this breaks poise as well, I'll make a PR to that as a companion. |
Co-authored-by: Michael Krasnitski <[email protected]>
Is this a good idea? Have you tested running shutdown concurrently to see if that breaks anything? It worries me if this was written with the assumption that it's |
The only fields of The other three fields all get written to only in |
Allows `Client::start` to finally return once all shards have shut down
As far as I can tell,
|
As with the tokio-tungstenite upgrade, failing test seems to be unrelated: dtolnay/proc-macro2#398 |
Test bot has been online for three days straight now without any heartbeat failures (through network loss etc etc). I think this has finally solved the issue. |
* Companion to serenity-rs/serenity#2523 * Update serenity to include serenity-rs/serenity#2523 * `cargo fmt` * `cargo update` Fixes `proc-macro2` compilation failure * Fix failing tests * Bump MSRV to 1.72.0 * Update and fix broken things * Convert u64 to u16 --------- Co-authored-by: kangalioo <[email protected]>
Has the side effect of fixing shutdown by removing the major deadlock. Required converting all `&mut self` methods on `ShardManager` to `&self`. Allows `Client::start` to finally return once all shards have shut down. --------- Co-authored-by: Michael Krasnitski <[email protected]>
Has the side effect of fixing shutdown by removing the major deadlock. Required converting all `&mut self` methods on `ShardManager` to `&self`. Allows `Client::start` to finally return once all shards have shut down. --------- Co-authored-by: Michael Krasnitski <[email protected]>
Has the side effect of fixing shutdown by removing the major deadlock. Required converting all `&mut self` methods on `ShardManager` to `&self`. Allows `Client::start` to finally return once all shards have shut down. --------- Co-authored-by: Michael Krasnitski <[email protected]>
Has the side effect of fixing shutdown by removing the major deadlock. Required converting all `&mut self` methods on `ShardManager` to `&self`. Allows `Client::start` to finally return once all shards have shut down. --------- Co-authored-by: Michael Krasnitski <[email protected]>
Has the side effect of fixing shutdown by removing the major deadlock. Required converting all `&mut self` methods on `ShardManager` to `&self`. Allows `Client::start` to finally return once all shards have shut down. --------- Co-authored-by: Michael Krasnitski <[email protected]>
Has the side effect of (theoretically)
fixing shutdown by removing the major deadlock
Required converting all
&mut self
methods on ShardManager to &selfCloses #2507