Commit 82676094 authored by Matt Caswell's avatar Matt Caswell
Browse files

Async clean ups



Removed the function ASYNC_job_is_waiting() as it was redundant. The only
time user code has a handle on a job is when one is waiting, so all they
need to do is check whether the job is NULL. Also did some cleanups to
make sure the job really is NULL after it has been freed!

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent 06754949
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -157,6 +157,7 @@ int ASYNC_start_job(ASYNC_JOB **job, int *ret, int (*func)(void *),
                *ret = ASYNC_get_ctx()->currjob->ret;
                ASYNC_JOB_free(ASYNC_get_ctx()->currjob);
                ASYNC_get_ctx()->currjob = NULL;
                *job = NULL;
                ASYNC_CTX_free();
                return ASYNC_FINISH;
            }
@@ -180,6 +181,7 @@ int ASYNC_start_job(ASYNC_JOB **job, int *ret, int (*func)(void *),
            /* Should not happen */
            ASYNC_JOB_free(ASYNC_get_ctx()->currjob);
            ASYNC_get_ctx()->currjob = NULL;
            *job = NULL;
            ASYNC_CTX_free();
            return ASYNC_ERR;
        }
@@ -213,6 +215,7 @@ int ASYNC_start_job(ASYNC_JOB **job, int *ret, int (*func)(void *),
err:
    ASYNC_JOB_free(ASYNC_get_ctx()->currjob);
    ASYNC_get_ctx()->currjob = NULL;
    *job = NULL;
    ASYNC_CTX_free();
    return ASYNC_ERR;
}
@@ -244,8 +247,3 @@ int ASYNC_in_job(void)

    return 0;
}

int ASYNC_job_is_waiting(ASYNC_JOB *job)
{
    return job->status == ASYNC_JOB_PAUSED;
}
+0 −1
Original line number Diff line number Diff line
@@ -70,7 +70,6 @@ int ASYNC_start_job(ASYNC_JOB **job, int *ret, int (*func)(void *),
                         void *args, size_t size);
int ASYNC_pause_job(void);
int ASYNC_in_job(void);
int ASYNC_job_is_waiting(ASYNC_JOB *job);

# ifdef  __cplusplus
}
+3 −3
Original line number Diff line number Diff line
@@ -925,9 +925,9 @@ int SSL_check_private_key(const SSL *ssl)

int SSL_waiting_for_async(SSL *s)
{
    if(s->job) {
        return ASYNC_job_is_waiting(s->job);
    }
    if(s->job)
        return 1;

    return 0;
}