-/* $Id: flock.c,v 1.19 2006-10-27 11:05:14 adam Exp $
- Copyright (C) 1995-2006
- Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+ Copyright (C) 1994-2011 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
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <stdio.h>
#include <assert.h>
#include <string.h>
{
int dlen = dir ? strlen(dir) : 0;
char *fname = xmalloc(dlen + strlen(name) + 3);
-
+
#ifdef WIN32
if (dlen)
{
int last_one = dir[dlen-1];
-
+
if (!strchr("/\\:", last_one))
sprintf(fname, "%s\\%s", dir, name);
else
if (!p)
{ /* didn't match (or we didn't want it to match! */
p = (struct zebra_lock_info *) xmalloc(sizeof(*p));
-
+
p->ref_count = 0;
#ifdef WIN32
p->fd = open(name, O_BINARY|O_RDONLY);
if (p->fd == -1)
{
xfree(p);
- yaz_log(YLOG_WARN | YLOG_ERRNO,
+ yaz_log(YLOG_WARN | YLOG_ERRNO,
"zebra_lock_create fail fname=%s", fname);
p = 0;
}
yaz_log(YLOG_WARN|YLOG_ERRNO, "fcntl FAIL type=%d fd=%d", type, fd);
else
yaz_log(log_level, "fcntl type=%d OK fd=%d", type, fd);
-
+
return r;
}
#endif
{
int r = 0;
int do_lock = 0;
- yaz_log(log_level, "zebra_lock_w fd=%d p=%p fname=%s begin",
+ yaz_log(log_level, "zebra_lock_w fd=%d p=%p fname=%s begin",
h->p->fd, h, h->p->fname);
#ifdef WIN32
h->write_flag = 1;
#endif
- yaz_log(log_level, "zebra_lock_w fd=%d p=%p fname=%s end",
+ yaz_log(log_level, "zebra_lock_w fd=%d p=%p fname=%s end",
h->p->fd, h, h->p->fname);
return r;
int r = 0;
int do_lock = 0;
- yaz_log(log_level, "zebra_lock_r fd=%d p=%p fname=%s begin",
+ yaz_log(log_level, "zebra_lock_r fd=%d p=%p fname=%s begin",
h->p->fd, h, h->p->fname);
#ifdef WIN32
while ((r = _locking(h->p->fd, _LK_LOCK, 1)))
assert(posix_locks);
}
zebra_mutex_unlock(&h->p->file_mutex);
-
+
h->write_flag = 0;
#endif
- yaz_log(log_level, "zebra_lock_r fd=%d p=%p fname=%s end",
+ yaz_log(log_level, "zebra_lock_r fd=%d p=%p fname=%s end",
h->p->fd, h, h->p->fname);
return r;
}
return r;
}
-/** \brief see if the fcntl locking is not POSIX
+/** \brief see if the fcntl locking is not POSIX
*
* The default posix_locks=1 is assumed.. This function sets posix_locks
* to zero if linuxthreads is in use.
*/
-static int check_for_linuxthreads()
+static int check_for_linuxthreads(void)
{
#if __linux
#ifdef _CS_GNU_LIBPTHREAD_VERSION
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab