diff options
Diffstat (limited to 'libnetdata/completion')
-rw-r--r-- | libnetdata/completion/Makefile.am | 4 | ||||
-rw-r--r-- | libnetdata/completion/completion.c | 64 | ||||
-rw-r--r-- | libnetdata/completion/completion.h | 27 |
3 files changed, 0 insertions, 95 deletions
diff --git a/libnetdata/completion/Makefile.am b/libnetdata/completion/Makefile.am deleted file mode 100644 index babdcf0df..000000000 --- a/libnetdata/completion/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -AUTOMAKE_OPTIONS = subdir-objects -MAINTAINERCLEANFILES = $(srcdir)/Makefile.in diff --git a/libnetdata/completion/completion.c b/libnetdata/completion/completion.c deleted file mode 100644 index 6257e0299..000000000 --- a/libnetdata/completion/completion.c +++ /dev/null @@ -1,64 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later - -#include "completion.h" - -void completion_init(struct completion *p) -{ - p->completed = 0; - p->completed_jobs = 0; - fatal_assert(0 == uv_cond_init(&p->cond)); - fatal_assert(0 == uv_mutex_init(&p->mutex)); -} - -void completion_destroy(struct completion *p) -{ - uv_cond_destroy(&p->cond); - uv_mutex_destroy(&p->mutex); -} - -void completion_wait_for(struct completion *p) -{ - uv_mutex_lock(&p->mutex); - while (0 == p->completed) { - uv_cond_wait(&p->cond, &p->mutex); - } - fatal_assert(1 == p->completed); - uv_mutex_unlock(&p->mutex); -} - -void completion_mark_complete(struct completion *p) -{ - uv_mutex_lock(&p->mutex); - p->completed = 1; - uv_cond_broadcast(&p->cond); - uv_mutex_unlock(&p->mutex); -} - -unsigned completion_wait_for_a_job(struct completion *p, unsigned completed_jobs) -{ - uv_mutex_lock(&p->mutex); - while (0 == p->completed && p->completed_jobs <= completed_jobs) { - uv_cond_wait(&p->cond, &p->mutex); - } - completed_jobs = p->completed_jobs; - uv_mutex_unlock(&p->mutex); - - return completed_jobs; -} - -void completion_mark_complete_a_job(struct completion *p) -{ - uv_mutex_lock(&p->mutex); - p->completed_jobs++; - uv_cond_broadcast(&p->cond); - uv_mutex_unlock(&p->mutex); -} - -bool completion_is_done(struct completion *p) -{ - bool ret; - uv_mutex_lock(&p->mutex); - ret = p->completed; - uv_mutex_unlock(&p->mutex); - return ret; -} diff --git a/libnetdata/completion/completion.h b/libnetdata/completion/completion.h deleted file mode 100644 index 723f73688..000000000 --- a/libnetdata/completion/completion.h +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later - -#ifndef NETDATA_COMPLETION_H -#define NETDATA_COMPLETION_H - -#include "../libnetdata.h" - -struct completion { - uv_mutex_t mutex; - uv_cond_t cond; - volatile unsigned completed; - volatile unsigned completed_jobs; -}; - -void completion_init(struct completion *p); - -void completion_destroy(struct completion *p); - -void completion_wait_for(struct completion *p); - -void completion_mark_complete(struct completion *p); - -unsigned completion_wait_for_a_job(struct completion *p, unsigned completed_jobs); -void completion_mark_complete_a_job(struct completion *p); -bool completion_is_done(struct completion *p); - -#endif /* NETDATA_COMPLETION_H */ |