소스 검색

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)
     }