summaryrefslogtreecommitdiffstats
path: root/src/ring.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ring.c')
-rw-r--r--src/ring.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/ring.c b/src/ring.c
index 922def8..4932e9e 100644
--- a/src/ring.c
+++ b/src/ring.c
@@ -14,7 +14,7 @@
# define ZIX_MLOCK(ptr, size) mlock((ptr), (size))
#elif defined(_WIN32)
# include <windows.h>
-# define ZIX_MLOCK(ptr, size) VirtualLock((ptr), (size))
+# define ZIX_MLOCK(ptr, size) !VirtualLock((ptr), (size))
#else
# pragma message("warning: No memory locking, possible RT violations")
# define ZIX_MLOCK(ptr, size)
@@ -106,11 +106,12 @@ zix_ring_free(ZixRing* const ring)
}
}
-void
+ZixStatus
zix_ring_mlock(ZixRing* const ring)
{
- ZIX_MLOCK(ring, sizeof(ZixRing));
- ZIX_MLOCK(ring->buf, ring->size);
+ return (ZIX_MLOCK(ring, sizeof(ZixRing)) || ZIX_MLOCK(ring->buf, ring->size))
+ ? ZIX_STATUS_ERROR
+ : ZIX_STATUS_SUCCESS;
}
void