aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-11-19 16:26:10 -0800
committerAustin Hellyer <[email protected]>2016-11-19 16:26:10 -0800
commit899687a6a5a938b3e3dc189ceb740f4dcdef90c4 (patch)
treee21b293b5ae741e868c3bbac21408278ff05bef6 /src/client
parentNonblocking connection (diff)
downloadserenity-899687a6a5a938b3e3dc189ceb740f4dcdef90c4.tar.xz
serenity-899687a6a5a938b3e3dc189ceb740f4dcdef90c4.zip
Fix type errors for non-framework builds
Diffstat (limited to 'src/client')
-rw-r--r--src/client/dispatch.rs2
-rw-r--r--src/client/mod.rs16
2 files changed, 13 insertions, 5 deletions
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs
index 80b2061..ad40497 100644
--- a/src/client/dispatch.rs
+++ b/src/client/dispatch.rs
@@ -68,7 +68,7 @@ pub fn dispatch(event: Event,
}
#[cfg(not(feature="framework"))]
-pub fn dispatch(event: Result<Event>,
+pub fn dispatch(event: Event,
conn: Arc<Mutex<Connection>>,
login_type: LoginType,
event_store: Arc<Mutex<EventStore>>) {
diff --git a/src/client/mod.rs b/src/client/mod.rs
index 6b9be4c..ee99c64 100644
--- a/src/client/mod.rs
+++ b/src/client/mod.rs
@@ -1284,12 +1284,20 @@ fn handle_connection(connection: Arc<Mutex<Connection>>,
fn handle_connection(connection: Arc<Mutex<Connection>>,
login_type: LoginType,
event_store: Arc<Mutex<EventStore>>,
- receiver: Receiver<WebSocketStream>) {
+ mut receiver: Receiver<WebSocketStream>) {
loop {
- let event = {
- let mut connection = connection.lock().unwrap();
+ let event = receiver.recv_json(GatewayEvent::decode);
+
+ let event = match connection.lock().unwrap().handle_event(event, &mut receiver) {
+ Ok(Some(x)) => match x {
+ (event, Some(new_receiver)) => {
+ receiver = new_receiver;
- connection.receive()
+ event
+ },
+ (event, None) => event,
+ },
+ _ => continue,
};
dispatch(event,