Update of /project/elephant/cvsroot/elephant/src In directory common-lisp.net:/tmp/cvs-serv31060/src
Modified Files: libsleepycat.c Log Message: next-oid fix: bug in counters, they weren't using the parent transactions and so were dead locking inside of with-transactions
Date: Thu Sep 2 16:45:53 2004 Author: blee
Index: elephant/src/libsleepycat.c diff -u elephant/src/libsleepycat.c:1.6 elephant/src/libsleepycat.c:1.7 --- elephant/src/libsleepycat.c:1.6 Sun Aug 29 22:39:29 2004 +++ elephant/src/libsleepycat.c Thu Sep 2 16:45:53 2004 @@ -416,7 +416,8 @@
/* Poor man's counters */
-int next_counter(DB_ENV *env, DB *db, char *key, u_int32_t key_length, +int next_counter(DB_ENV *env, DB *db, DB_TXN *parent, + char *key, u_int32_t key_length, char *lockid, u_int32_t lockid_length) { DB_LOCK lock; DBT DBTKey, DBTData; @@ -439,7 +440,7 @@ lockheld = 0;
/* Begin the transaction. */ - if ((ret = env->txn_begin(env, NULL, &tid, 0)) != 0) { + if ((ret = env->txn_begin(env, parent, &tid, 0)) != 0) { env->err(env, ret, "DB_ENV->txn_begin"); return (-1); }