diff options
author | David Timber <mieabby@gmail.com> | 2020-08-17 18:16:49 +0930 |
---|---|---|
committer | David Timber <mieabby@gmail.com> | 2020-08-17 18:35:31 +0930 |
commit | 7bd3eb3b1ad4209ac4cf4b46f849213d46bc33aa (patch) | |
tree | 0e7a16fb3d36ada8a2a494f8dc063e8b67350d58 /src/pth.h | |
parent | d7cc11191dfd3fead5e596fcbc24f40d1317819e (diff) |
Employ pthsem ...
* Use uint8_t array for hardcoded binary data
* Add proone-ipaddr-arr to hardcode DoT servers
* Convert X509 data
* Brought back M68k and ARC archs just in case
* Add CLOCK_REALTIME in prne_mbedtls_entropy_proc_src_f for more entropy
* Remove installation of signal handlers. Use sigwait() instead
* Bugfix: prne_rnd_anum_str() returned null characters
* Add prne_dbgpf() and prne_dbgperr()
* prne_assert(): put errno into a register so it's visible in the core dump
Diffstat (limited to 'src/pth.h')
-rw-r--r-- | src/pth.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/pth.h b/src/pth.h new file mode 100644 index 0000000..172e6cf --- /dev/null +++ b/src/pth.h @@ -0,0 +1,31 @@ +#pragma once +#include <stdbool.h> + +#include <pthsem.h> + + +struct prne_worker { + void *ctx; + void *(*entry)(void*); + void (*fin)(void*); + void (*free_ctx)(void*); + pth_t pth; +}; +typedef struct prne_worker prne_worker_t; + +struct prne_pth_cv { + pth_mutex_t *lock; + pth_cond_t *cond; + bool broadcast; +}; +typedef struct prne_pth_cv prne_pth_cv_t; + + +void prne_init_worker (prne_worker_t *w); +void prne_free_worker (prne_worker_t *w); +void prne_fin_worker (prne_worker_t *w); + +bool prne_pth_cv_notify (prne_pth_cv_t *cv); +bool prne_pth_cond_timedwait (prne_pth_cv_t *cv, const struct timespec *timeout, bool *to_reached); +int prne_unint_pth_poll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout); +void prne_unint_pth_nanosleep (struct timespec dur); |