fix race condition

This commit is contained in:
Erik 2015-03-22 11:02:31 -04:00
parent 4de422e7f1
commit dee508c0f7
2 changed files with 2 additions and 5 deletions

View File

@ -26,7 +26,6 @@
import Foundation import Foundation
@objc public protocol SocketEngineClient { @objc public protocol SocketEngineClient {
var ackQueue:dispatch_queue_attr_t! {get}
var handleQueue:dispatch_queue_attr_t! {get} var handleQueue:dispatch_queue_attr_t! {get}
var emitQueue:dispatch_queue_attr_t! {get} var emitQueue:dispatch_queue_attr_t! {get}
var reconnecting:Bool {get} var reconnecting:Bool {get}

View File

@ -45,8 +45,6 @@ public class SocketIOClient: NSObject, SocketEngineClient {
var waitingData = ContiguousArray<SocketPacket>() var waitingData = ContiguousArray<SocketPacket>()
public let socketURL:String public let socketURL:String
public let ackQueue = dispatch_queue_create("ackQueue".cStringUsingEncoding(NSUTF8StringEncoding),
DISPATCH_QUEUE_SERIAL)
public let handleQueue = dispatch_queue_create("handleQueue".cStringUsingEncoding(NSUTF8StringEncoding), public let handleQueue = dispatch_queue_create("handleQueue".cStringUsingEncoding(NSUTF8StringEncoding),
DISPATCH_QUEUE_SERIAL) DISPATCH_QUEUE_SERIAL)
public let emitQueue = dispatch_queue_create("emitQueue".cStringUsingEncoding(NSUTF8StringEncoding), public let emitQueue = dispatch_queue_create("emitQueue".cStringUsingEncoding(NSUTF8StringEncoding),
@ -263,7 +261,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
// If the server wants to know that the client received data // If the server wants to know that the client received data
func emitAck(ack:Int, withData args:[AnyObject]?) { func emitAck(ack:Int, withData args:[AnyObject]?) {
dispatch_async(self.ackQueue) {[weak self] in dispatch_async(self.emitQueue) {[weak self] in
if self == nil || !self!.connected || args == nil { if self == nil || !self!.connected || args == nil {
return return
} }