From 8cab91933fb62789fafa1b8383f99d4a42eadfc9 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Wed, 29 Nov 2017 22:38:54 +0100 Subject: [PATCH] Separate blocking push & pop. --- m-buffer.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/m-buffer.h b/m-buffer.h index d4e7d8fd..877bed7e 100644 --- a/m-buffer.h +++ b/m-buffer.h @@ -32,10 +32,12 @@ /* Define the different kind of policy a buffer can have. */ typedef enum { BUFFER_QUEUE = 0, BUFFER_STACK = 1, - BUFFER_BLOCKING = 0, BUFFER_UNBLOCKING = 2, - BUFFER_THREAD_SAFE = 0, BUFFER_THREAD_UNSAFE = 4, - BUFFER_PUSH_INIT_POP_MOVE = 8, - BUFFER_PUSH_OVERWRITE = 16 + BUFFER_BLOCKING_PUSH = 0, BUFFER_UNBLOCKING_PUSH = 2, + BUFFER_BLOCKING_POP = 0, BUFFER_UNBLOCKING_POP = 4, + BUFFER_BLOCKING = 0, BUFFER_UNBLOCKING = 6, + BUFFER_THREAD_SAFE = 0, BUFFER_THREAD_UNSAFE = 8, + BUFFER_PUSH_INIT_POP_MOVE = 16, + BUFFER_PUSH_OVERWRITE = 32 } buffer_policy_e; /* Define a buffer. @@ -207,7 +209,7 @@ M_C(name, _init)(buffer_t v, size_t size) \ m_mutex_lock(v->mutex); \ while (!BUFFERI_POLICY_P((policy), BUFFER_PUSH_OVERWRITE) \ && M_C(name, _full_p)(v)) { \ - if (BUFFERI_POLICY_P((policy), BUFFER_UNBLOCKING)) { \ + if (BUFFERI_POLICY_P((policy), BUFFER_UNBLOCKING_PUSH)) { \ m_mutex_unlock(v->mutex); \ return false; \ } \ @@ -267,7 +269,7 @@ M_C(name, _init)(buffer_t v, size_t size) \ if (!BUFFERI_POLICY_P((policy), BUFFER_THREAD_UNSAFE)) { \ m_mutex_lock(v->mutex); \ while (M_C(name, _empty_p)(v)) { \ - if (BUFFERI_POLICY_P((policy), BUFFER_UNBLOCKING)) { \ + if (BUFFERI_POLICY_P((policy), BUFFER_UNBLOCKING_POP)) { \ m_mutex_unlock(v->mutex); \ return false; \ } \