aboutsummaryrefslogtreecommitdiffstats
path: root/executor/executor_posix.h
diff options
context:
space:
mode:
Diffstat (limited to 'executor/executor_posix.h')
-rw-r--r--executor/executor_posix.h82
1 files changed, 0 insertions, 82 deletions
diff --git a/executor/executor_posix.h b/executor/executor_posix.h
deleted file mode 100644
index 3e8b78b3e..000000000
--- a/executor/executor_posix.h
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright 2017 syzkaller project authors. All rights reserved.
-// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
-
-#include <pthread.h>
-
-typedef pthread_t osthread_t;
-
-void thread_start(osthread_t* t, void* (*fn)(void*), void* arg)
-{
- pthread_attr_t attr;
- pthread_attr_init(&attr);
- pthread_attr_setstacksize(&attr, 128 << 10);
- if (pthread_create(t, &attr, fn, arg))
- exitf("pthread_create failed");
- pthread_attr_destroy(&attr);
-}
-
-struct event_t {
- pthread_mutex_t mu;
- pthread_cond_t cv;
- bool state;
-};
-
-void event_init(event_t* ev)
-{
- if (pthread_mutex_init(&ev->mu, 0))
- fail("pthread_mutex_init failed");
- if (pthread_cond_init(&ev->cv, 0))
- fail("pthread_cond_init failed");
- ev->state = false;
-}
-
-void event_reset(event_t* ev)
-{
- ev->state = false;
-}
-
-void event_set(event_t* ev)
-{
- pthread_mutex_lock(&ev->mu);
- if (ev->state)
- fail("event already set");
- ev->state = true;
- pthread_mutex_unlock(&ev->mu);
- pthread_cond_broadcast(&ev->cv);
-}
-
-void event_wait(event_t* ev)
-{
- pthread_mutex_lock(&ev->mu);
- while (!ev->state)
- pthread_cond_wait(&ev->cv, &ev->mu);
- pthread_mutex_unlock(&ev->mu);
-}
-
-bool event_isset(event_t* ev)
-{
- pthread_mutex_lock(&ev->mu);
- bool res = ev->state;
- pthread_mutex_unlock(&ev->mu);
- return res;
-}
-
-bool event_timedwait(event_t* ev, uint64 timeout_ms)
-{
- pthread_mutex_lock(&ev->mu);
- uint64 start = current_time_ms();
- for (;;) {
- if (ev->state)
- break;
- uint64 now = current_time_ms();
- if (now - start > timeout_ms)
- break;
- timespec ts;
- ts.tv_sec = 0;
- ts.tv_nsec = (timeout_ms - (now - start)) * 1000 * 1000;
- pthread_cond_timedwait(&ev->cv, &ev->mu, &ts);
- }
- bool res = ev->state;
- pthread_mutex_unlock(&ev->mu);
- return res;
-}