Skip to content

Commit cbc59d6

Browse files
committed
fix race condition
1 parent 72d5c07 commit cbc59d6

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

SwiftIO/SocketEngine.swift

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -557,16 +557,22 @@ public class SocketEngine: NSObject, WebSocketDelegate {
557557
}
558558

559559
public func write(msg:String, withType type:PacketType, withData data:[NSData]?) {
560-
if !self.connected {
561-
return
562-
}
563-
564-
if self.websocket {
565-
// NSLog("writing ws: \(msg):\(datas)")
566-
self.sendWebSocketMessage(msg, withType: type, datas: data)
567-
} else {
568-
// NSLog("writing poll: \(msg):\(datas)")
569-
self.sendPollMessage(msg, withType: type, datas: data)
560+
dispatch_async(self.emitQueue) {[weak self] in
561+
if self == nil {
562+
return
563+
}
564+
565+
if !self!.connected {
566+
return
567+
}
568+
569+
if self!.websocket {
570+
// NSLog("writing ws: \(msg):\(datas)")
571+
self?.sendWebSocketMessage(msg, withType: type, datas: data)
572+
} else {
573+
// NSLog("writing poll: \(msg):\(datas)")
574+
self?.sendPollMessage(msg, withType: type, datas: data)
575+
}
570576
}
571577
}
572578

0 commit comments

Comments
 (0)