refactor client dispatch queues

This commit is contained in:
Erik 2015-10-29 19:10:38 -04:00
parent 9633bea018
commit 0b6cece96b

View File

@ -41,6 +41,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
private let emitQueue = dispatch_queue_create("com.socketio.emitQueue", DISPATCH_QUEUE_SERIAL)
private let logType = "SocketIOClient"
private let parseQueue = dispatch_queue_create("com.socketio.parseQueue", DISPATCH_QUEUE_SERIAL)
private var anyHandler: ((SocketAnyEvent) -> Void)?
private var currentReconnectAttempt = 0
@ -52,6 +53,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
private(set) var currentAck = -1
private(set) var handleQueue = dispatch_get_main_queue()
private(set) var reconnectAttempts = -1
var waitingData = [SocketPacket]()
/**
@ -344,23 +346,20 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "")
if anyHandler != nil {
dispatch_async(handleQueue) {
if self.anyHandler != nil {
self.anyHandler?(SocketAnyEvent(event: event, items: data))
}
for handler in self.handlers where handler.event == event {
if let ack = ack {
handler.executeCallback(data, withAck: ack, withSocket: self)
} else {
handler.executeCallback(data, withAck: ack, withSocket: self)
}
}
}
for handler in handlers where handler.event == event {
if let ack = ack {
dispatch_async(handleQueue) {
handler.executeCallback(data, withAck: ack, withSocket: self)
}
} else {
dispatch_async(handleQueue) {
handler.executeCallback(data, withAck: ack, withSocket: self)
}
}
}
}
/**
@ -451,13 +450,13 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
}
public func parseSocketMessage(msg: String) {
dispatch_async(handleQueue) {
dispatch_async(parseQueue) {
SocketParser.parseSocketMessage(msg, socket: self)
}
}
public func parseBinaryData(data: NSData) {
dispatch_async(handleQueue) {
dispatch_async(parseQueue) {
SocketParser.parseBinaryData(data, socket: self)
}
}