X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=bfile%2Fmfile.c;h=6afd61129a2c20918ef14b98304e7404d20753fc;hb=c1a85f9caaa8476a69b392349e90b7c4981e7db3;hp=684d6b063ef250a050b2af653b3851c4db92ebd0;hpb=eb2b742588ce07fb4516bbca22c93b938b13e433;p=idzebra-moved-to-github.git diff --git a/bfile/mfile.c b/bfile/mfile.c index 684d6b0..6afd611 100644 --- a/bfile/mfile.c +++ b/bfile/mfile.c @@ -4,7 +4,14 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: mfile.c,v $ - * Revision 1.37 2000-03-15 15:00:30 adam + * Revision 1.39 2000-05-05 13:48:03 adam + * Fixed locking for metafiles. + * + * Revision 1.38 2000/03/20 19:08:35 adam + * Added remote record import using Z39.50 extended services and Segment + * Requests. + * + * Revision 1.37 2000/03/15 15:00:30 adam * First work on threaded version. * * Revision 1.36 1999/12/08 15:03:11 adam @@ -320,6 +327,7 @@ MFile_area mf_init(const char *name, const char *spec) if (!meta_f) { meta_f = (meta_file *) xmalloc(sizeof(*meta_f)); + zebra_mutex_init (&meta_f->mutex); meta_f->ma = ma; meta_f->next = ma->mfiles; meta_f->open = 0; @@ -527,7 +535,10 @@ int mf_read(MFile mf, int no, int offset, int nbytes, void *buf) if ((rd = file_position(mf, no, offset)) < 0) { if (rd == -2) + { + zebra_mutex_unlock (&mf->mutex); return 0; + } else exit(1); }