diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2014-04-26 15:09:01 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2014-04-26 18:06:45 -0400 |
commit | 46ab5e42be9b676242e3a7aef8748b08ac52a303 (patch) | |
tree | 56e6dfedd97c0fb14b3ab8f693af80d8749a16ec /libdimension/future.c | |
parent | bc1ac83133bb32ce3795c4781fd504580ae27d8b (diff) | |
download | dimension-46ab5e42be9b676242e3a7aef8748b08ac52a303.tar.xz |
future: Add to benchmark.
Diffstat (limited to 'libdimension/future.c')
-rw-r--r-- | libdimension/future.c | 20 |
1 files changed, 14 insertions, 6 deletions
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; |