From ce6df1eaab07d33544975ffe67a4b7a231cf795a Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Thu, 23 Mar 2006 12:07:12 +0000 Subject: [PATCH] WIN32 flock test --- util/tstflock.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++--- win/makefile | 22 ++++++++++++++++++++-- 2 files changed, 71 insertions(+), 5 deletions(-) diff --git a/util/tstflock.c b/util/tstflock.c index 0d0be35..3da7f7a 100644 --- a/util/tstflock.c +++ b/util/tstflock.c @@ -2,21 +2,37 @@ * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: tstflock.c,v 1.1 2006-03-23 09:15:25 adam Exp $ + * $Id: tstflock.c,v 1.2 2006-03-23 12:07:12 adam Exp $ */ #include #if YAZ_POSIX_THREADS #include #endif +#ifdef WIN32 +#include +#include +#endif #include +#if HAVE_UNISTD_H #include +#endif #include static char seq[20]; static char *seqp = seq; +#define NUM_THREADS 2 + +static void small_sleep() +{ +#ifdef WIN32 + Sleep(50); +#else + sleep(1); +#endif +} void *run_func(void *arg) { int i; @@ -26,7 +42,7 @@ void *run_func(void *arg) zebra_lock_w(lh); *seqp++ = 'L'; - sleep(1); + small_sleep(); *seqp++ = 'U'; zebra_unlock(lh); @@ -35,6 +51,37 @@ void *run_func(void *arg) return 0; } +#ifdef WIN32 +DWORD WINAPI ThreadProc(void *p) +{ + run_func(p); + return 0; +} + +static void tst1() +{ + HANDLE handles[NUM_THREADS]; + DWORD dwThreadId[NUM_THREADS]; + int i, id[NUM_THREADS]; + + for (i = 0; i