summaryrefslogtreecommitdiff
path: root/src/w32-lock.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2017-11-29 20:22:06 +0100
committerWerner Koch <wk@gnupg.org>2017-11-29 20:22:06 +0100
commitadc786d034b63176b941a1ef8d996acbf8d0ea5d (patch)
treeb19d82491cc7666f18cb44d2f7458f2f28fbe936 /src/w32-lock.c
parent1865c0ba1769b407a3c504f1ab0a4278704a9fc1 (diff)
downloadlibgpg-error-adc786d034b63176b941a1ef8d996acbf8d0ea5d.tar.gz
core: Unify syscall_clamp functions.
* src/estream.c (_gpgrt_set_syscall_clamp) (_gpgrt_get_syscall_clamp): Move to ... * src/syscall-clamp.c: new file. (_gpgrt_pre_syscall, _gpgrt_post_syscall): New. * src/Makefile.am (libgpg_error_la_SOURCES): Add that file. * src/estream.c: Replace the syscall wrapper with the new functions. * src/posix-lock.c: Ditto. * src/w32-lock.c: Ditto. * src/posix-thread.c: Ditto. * src/w32-thread.c: Ditto. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src/w32-lock.c')
-rw-r--r--src/w32-lock.c31
1 files changed, 5 insertions, 26 deletions
diff --git a/src/w32-lock.c b/src/w32-lock.c
index 51b13a1..a55f932 100644
--- a/src/w32-lock.c
+++ b/src/w32-lock.c
@@ -29,34 +29,15 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
-#include <gpg-error.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
+#include "gpgrt-int.h"
#include "lock.h"
#include "w32-lock-obj.h"
-/*
- * Functions called before and after blocking syscalls.
- * gpgrt_set_syscall_clamp is used to set them.
- */
-static void (*pre_lock_func)(void);
-static void (*post_lock_func)(void);
-
-
-/* Helper to set the clamp functions. This is called as a helper from
- * _gpgrt_set_syscall_clamp to keep the function pointers local. */
-void
-_gpgrt_lock_set_lock_clamp (void (*pre)(void), void (*post)(void))
-{
- pre_lock_func = pre;
- post_lock_func = post;
-}
-
-
-
static _gpgrt_lock_t *
get_lock_object (gpgrt_lock_t *lockhd)
{
@@ -112,7 +93,7 @@ _gpgrt_lock_lock (gpgrt_lock_t *lockhd)
and thus fall into the wait loop below. We ignore that
STARTED may in theory overflow if this thread starves for
too long. */
- gpgrt_lock_init (lockhd);
+ _gpgrt_lock_init (lockhd);
}
else
{
@@ -121,11 +102,9 @@ _gpgrt_lock_lock (gpgrt_lock_t *lockhd)
}
}
- if (pre_lock_func)
- pre_lock_func ();
+ _gpgrt_pre_syscall ();
EnterCriticalSection (&lock->csec);
- if (post_lock_func)
- post_lock_func ();
+ _gpgrt_post_syscall ();
return 0;
}
@@ -139,7 +118,7 @@ _gpgrt_lock_trylock (gpgrt_lock_t *lockhd)
{
if (!InterlockedIncrement (&lock->started))
{
- gpgrt_lock_init (lockhd);
+ _gpgrt_lock_init (lockhd);
}
else
{