     @discardableResult
     public func removeEndPoint(_ endPoint: EndPoint) throws -> Bool {
         if (self.endPoints.contains(endPoint)) {
-            var loopCount: UInt = 0
-            // calculate the delay between re-attempts of closing the socket.
-            let microSecondsDelay = UInt32(_getClosureTimeout() * 1000 / self.closureAttempts)
+            var loopCount = 0
 
             while (true) {
                 let returnCode = nn_shutdown(self.socketFd, CInt(endPoint.id))  // attempt to close down the endpoint

    }

    deinit {
        func closeSocket(_ microSecondsDelay: UInt32) throws {
            if (self.socketFd >= 0) {                                   // if we have a valid nanomsg socket file descriptor then...
                var loopCount: UInt = 0

                while (true) {
                    let returnCode = nn_close(self.socketFd)            // try and close the nanomsg socket

                            throw NanoMessageError.Close(code: errno)
                        }

                        usleep(self._closureDelay)                      // zzzz...

                        loopCount += 1
                    } else {
