X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fflock.c;h=98a1590fdb533a4adcac6cfc176d3fd7daaa3396;hb=7415d28c149c1bab51fe93aeaccdd14085b69bd9;hp=fda991b8d70fd2a73aa38652ccda86708973ce73;hpb=8b45b3079db774065246ef67a8b2c22b5f13ed18;p=idzebra-moved-to-github.git diff --git a/util/flock.c b/util/flock.c index fda991b..98a1590 100644 --- a/util/flock.c +++ b/util/flock.c @@ -1,4 +1,4 @@ -/* $Id: flock.c,v 1.15 2006-07-03 12:23:17 adam Exp $ +/* $Id: flock.c,v 1.16 2006-07-03 13:40:58 adam Exp $ Copyright (C) 1995-2006 Index Data ApS @@ -335,9 +335,15 @@ int zebra_unlock(ZebraLockHandle h) #else zebra_mutex_lock(&h->p->file_mutex); if (h->write_flag) - h->p->no_file_write_lock--; + { + if (h->p->no_file_write_lock > 0) + h->p->no_file_write_lock--; + } else - h->p->no_file_read_lock--; + { + if (h->p->no_file_read_lock > 0) + h->p->no_file_read_lock--; + } if (h->p->no_file_read_lock == 0 && h->p->no_file_write_lock == 0) do_unlock = 1; if (do_unlock)