'Please note that this method blocks from the caller\'s point of view
but performs all the HTTP requests in parallel threads.'

def _send_mutants_in_threads(self, func, iterable, callback, **kwds):

    imap_unordered = self.worker_pool.imap_unordered
    awre = apply_with_return_error
    func = return_args(func, **kwds)
    args = zip(repeat(func), iterable)
    for result in imap_unordered(awre, args):
        if isinstance(result, Error):
            result.reraise()
        else:
            ((mutant,), http_response) = result
            callback(mutant, http_response)
