Преглед изворни кода

Merge pull request #187 from oliveroneill/socket_shutdown_fix

Bug fix with socket being shutdown multiple times
Patrick Culligan пре 9 година
родитељ
комит
9b09a2e5c3
1 измењених фајлова са 10 додато и 0 уклоњено
  1. 10 0
      Sources/Socket.swift

+ 10 - 0
Sources/Socket.swift

@@ -30,6 +30,8 @@ public enum SocketError: ErrorType {
 public class Socket: Hashable, Equatable {
         
     let socketFileDescriptor: Int32
+    private var shutdown = false
+
     
     public init(socketFileDescriptor: Int32) {
         self.socketFileDescriptor = socketFileDescriptor
@@ -42,10 +44,18 @@ public class Socket: Hashable, Equatable {
     public var hashValue: Int { return Int(self.socketFileDescriptor) }
     
     public func release() {
+        if shutdown {
+            return
+        }
+        shutdown = true
         Socket.release(self.socketFileDescriptor)
     }
     
     public func shutdwn() {
+        if shutdown {
+            return
+        }
+        shutdown = true
         Socket.shutdwn(self.socketFileDescriptor)
     }