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: Rich Salz <rsalz@openssl.org>
This commit is contained in:
Matt Caswell
2015-03-26 10:15:59 +00:00
parent 06754949e4
commit 826760945d
3 changed files with 6 additions and 9 deletions

View File

@@ -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;
}