X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Ftstflock.c;h=9d627d764dd94c9dbaa5ee82da2184a3c4bb119c;hb=36b87ab1076744bf0438799bb375705f535bcb6b;hp=1c2fedbcfd1097595ca52f8212d2741922134e52;hpb=38241cbf471b954b9bfcb94e50375a25c069faf6;p=idzebra-moved-to-github.git diff --git a/util/tstflock.c b/util/tstflock.c index 1c2fedb..9d627d7 100644 --- a/util/tstflock.c +++ b/util/tstflock.c @@ -1,15 +1,32 @@ -/* - * Copyright (C) 1995-2006, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstflock.c,v 1.14 2006-07-05 12:02:12 adam Exp $ - */ +/* This file is part of the Zebra server. + Copyright (C) Index Data + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#if HAVE_CONFIG_H +#include +#endif #include #include #include #include +#if HAVE_SYS_TIME_H #include +#endif #include #if HAVE_SYS_STAT_H @@ -27,6 +44,10 @@ #include +#ifdef WIN32 +#include +#endif + #if YAZ_POSIX_THREADS #include #endif @@ -50,10 +71,10 @@ pthread_mutex_t sleep_mutex = PTHREAD_MUTEX_INITIALIZER; int test_fd = 0; -static void small_sleep() +static void small_sleep(void) { #ifdef WIN32 - Sleep(50); + Sleep(2); #else #if YAZ_POSIX_THREADS struct timespec abstime; @@ -86,7 +107,7 @@ void *run_func(void *arg) if (use_write_lock == 2) /* random lock */ write_lock = (rand() & 3) == 3 ? 1 : 0; - + if (write_lock) { zebra_lock_w(lh); @@ -94,21 +115,21 @@ void *run_func(void *arg) write(test_fd, "L", 1); *seqp++ = 'L'; small_sleep(); - *seqp++ = 'U'; + *seqp++ = 'U'; write(test_fd, "U", 1); - + zebra_unlock(lh); } else { zebra_lock_r(lh); - + write(test_fd, "l", 1); *seqp++ = 'l'; small_sleep(); *seqp++ = 'u'; write(test_fd, "u", 1); - + zebra_unlock(lh); } } @@ -169,11 +190,11 @@ static void tst_thread(int num, int write_flag) for (i = 0; i < num; i++) YAZ_CHECK(id[i] == 123); *seqp++ = '\0'; - yaz_log(YLOG_LOG, "tst_thread(%d,%d) returns seq=%s", + yaz_log(YLOG_LOG, "tst_thread(%d,%d) returns seq=%s", num, write_flag, seq); } -static void tst() +static void tst(void) { tst_thread(4, 1); /* write locks */ if (1) @@ -192,7 +213,7 @@ static void tst() tst_thread(20, 2); /* random locks */ } -void fork_tst() +void fork_tst(void) { #if HAVE_SYS_WAIT_H pid_t pid[2]; @@ -220,13 +241,8 @@ void fork_tst() int main(int argc, char **argv) { - char logname[220]; YAZ_CHECK_INIT(argc, argv); - - sprintf(logname, "%.200s.log", argv[0]); - yaz_log_init_file(logname); - - yaz_log_time_format("%s:%!"); + YAZ_CHECK_LOG(); /* ensure the flock system logs in our test */ yaz_log_init_level(yaz_log_mask_str("flock")); @@ -246,6 +262,7 @@ int main(int argc, char **argv) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab