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