]> mj.ucw.cz Git - libucw.git/commitdiff
obuck_predict_last_oid() can be made safe easily.
authorMartin Mares <mj@ucw.cz>
Sun, 11 Jan 2004 19:09:22 +0000 (19:09 +0000)
committerMartin Mares <mj@ucw.cz>
Sun, 11 Jan 2004 19:09:22 +0000 (19:09 +0000)
lib/bucket.c

index a9422ca549e1af205988011ba8e9c8948559549c..9d7b1d5892a643260a772a4a9ffb7cbf376894f1 100644 (file)
@@ -298,9 +298,11 @@ obuck_fetch(void)
 oid_t
 obuck_predict_last_oid(void)
 {
 oid_t
 obuck_predict_last_oid(void)
 {
-  /* BEWARE: This is not fork-safe. */
+  obuck_lock_write();
   sh_off_t size = sh_seek(obuck_fd, 0, SEEK_END);
   sh_off_t size = sh_seek(obuck_fd, 0, SEEK_END);
-  return size >> OBUCK_SHIFT;
+  oid_t ss = size >> OBUCK_SHIFT;
+  obuck_unlock();
+  return ss;
 }
 
 struct fastbuf *
 }
 
 struct fastbuf *