From: Adam Dickmeiss Date: Thu, 23 Mar 2006 12:07:12 +0000 (+0000) Subject: WIN32 flock test X-Git-Tag: before.bug.529~206 X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=commitdiff_plain;h=ce6df1eaab07d33544975ffe67a4b7a231cf795a WIN32 flock test --- 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