diff options
| author | Austin Hellyer <[email protected]> | 2017-02-07 07:52:20 -0800 |
|---|---|---|
| committer | Austin Hellyer <[email protected]> | 2017-02-07 07:52:20 -0800 |
| commit | 04cfaa9a69dc1638e9cd1904a9b8e94c1a97f832 (patch) | |
| tree | 1a3d6576e0876740c1ac546e0e14525124961e83 /src/client/mod.rs | |
| parent | Fix a clippy lint (diff) | |
| download | serenity-04cfaa9a69dc1638e9cd1904a9b8e94c1a97f832.tar.xz serenity-04cfaa9a69dc1638e9cd1904a9b8e94c1a97f832.zip | |
Resume when restarting WS sender/receiver
Diffstat (limited to 'src/client/mod.rs')
| -rw-r--r-- | src/client/mod.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/client/mod.rs b/src/client/mod.rs index 073ffb5..5ef770a 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -1308,12 +1308,20 @@ fn handle_shard(info: &mut MonitorInfo) { Err(Error::WebSocket(WebSocketError::NoDataAvailable)) => { debug!("Attempting to shutdown receiver/sender"); - match info.receiver.shutdown_all() { - Ok(_) => debug!("Successfully shutdown receiver/sender"), - Err(why) => warn!("Err shutting down receiver/sender: {:?}", why), - } + match info.shard.lock().unwrap().resume(&mut info.receiver) { + Ok((_, receiver)) => { + debug!("Successfully resumed shard"); + + info.receiver = receiver; - return; + continue; + }, + Err(why) => { + warn!("Err resuming shard: {:?}", why); + + return; + }, + } }, other => other, }; |