From 46ab5e42be9b676242e3a7aef8748b08ac52a303 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sat, 26 Apr 2014 15:09:01 -0400 Subject: future: Add to benchmark. --- libdimension/future.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'libdimension/future.c') diff --git a/libdimension/future.c b/libdimension/future.c index c344a8e..f62c01d 100644 --- a/libdimension/future.c +++ b/libdimension/future.c @@ -55,6 +55,19 @@ dmnsn_new_future(void) return future; } +static void +dmnsn_delete_future(dmnsn_future *future) +{ + if (future) { + dmnsn_destroy_cond(&future->resume_cond); + dmnsn_destroy_cond(&future->all_running_cond); + dmnsn_destroy_cond(&future->none_running_cond); + dmnsn_destroy_cond(&future->cond); + dmnsn_destroy_mutex(&future->mutex); + dmnsn_free(future); + } +} + /* Join the worker thread and delete `future'. */ int dmnsn_future_join(dmnsn_future *future) @@ -73,12 +86,7 @@ dmnsn_future_join(dmnsn_future *future) } /* Free the future object */ - dmnsn_destroy_cond(&future->resume_cond); - dmnsn_destroy_cond(&future->all_running_cond); - dmnsn_destroy_cond(&future->none_running_cond); - dmnsn_destroy_cond(&future->cond); - dmnsn_destroy_mutex(&future->mutex); - dmnsn_free(future); + dmnsn_delete_future(future); } return retval; -- cgit v1.2.3