     /// - Parameters:
     ///   - queue:   The dispatch queue to use
     ///   - group:   The dispatch group to use.
-    ///   - failure: The closure to use when the 'loopback' fails.
+    ///   - failure: The closure to use if the 'loopBack()' fails.
     ///
     /// - Returns:          The despatched work item.
     public func loopBack(queue:   DispatchQueue,
                          group:   DispatchGroup,
                          failure: @escaping (Error) -> Void) -> DispatchWorkItem {
-        let workItem = DispatchWorkItem {
-            do {
-                try self.loopBack()
-            } catch {
-                failure(error)
-            }
-        }
-
-        queue.async(group: group, execute: workItem)
-
-        return workItem
+        return _dispatchWorkItem(queue:    queue,
+                                 group:    group,
+                                 funcCall: {
+                                     try self.loopBack()
+                                 },
+                                 failure:  failure)
     }
 }
 

        return endPoint
    }

    /// Adds a local endpoint to the socket. The endpoint can be then used by other applications to connect to.
    ///
    /// - Parameters:

    /// Attempt a call to the underlying library within a loop with a delay.
    ///
    /// - Parameters:
    ///   - funcCall: nanomsg 'c' function to call.
    ///   - failure:  error associated with the parameter `funcCall`.
    ///
    /// - Throws: `NanoMessageError.Interrupted`
    ///           whatever was passed as the closure `failure`
    fileprivate func _attemptClosure(funcCall: () -> CInt,
                                     failure:  (CInt) -> NanoMessageError) throws {
        var loopCount = 0

        while (true) {
            if (funcCall() < 0) {                             // call the passed underlying library.
                let errno = nn_errno()

                if (errno == EINTR) {                         // if we were interrupted by a signal, reattempt is allowed by the native library
