                 success_lock.try()
                 success = true
                 success_lock.unlock()
+                completionHandler(nil)
             }) { (response, error) in
                 success_lock.try()
                 guard success else {

                }
                
                // Send retreive command
                let len = 19 /* TYPE response */ + 65 + String(position).count /* REST Response */ + 53 + filePath.count + String(totalSize).count /* RETR open response */ + 26 /* RETR Transfer complete message. */
                self.execute(command: "TYPE I" + "\r\n" + "REST \(position)" + "\r\n" + "RETR \(filePath)", on: task, minLength: len, afterSend: { error in
                    // starting passive task
                    onTask?(dataTask)
                    

                    
                    dataTask.closeRead()
                    dataTask.closeWrite()
                    
                    completionHandler(nil)
                })
            }) { (response, error) in
                success_lock.try()
