return -1;
}
- tdb->num_locks++;
-
tdb->lockrecs[tdb->num_lockrecs].off = offset;
tdb->lockrecs[tdb->num_lockrecs].count = 1;
tdb->lockrecs[tdb->num_lockrecs].ltype = ltype;
- tdb->num_lockrecs += 1;
+ tdb->num_lockrecs++;
return 0;
}
} else {
ret = tdb->methods->brunlock(tdb, ltype, offset, 1);
}
- tdb->num_locks--;
/*
* Shrink the array by overwriting the element just unlocked with the
* last array element.
*/
-
- if (tdb->num_lockrecs > 1) {
- *lck = tdb->lockrecs[tdb->num_lockrecs-1];
- }
- tdb->num_lockrecs -= 1;
+ *lck = tdb->lockrecs[--tdb->num_lockrecs];
/*
* We don't bother with realloc when the array shrinks, but if we have
return -1;
}
- if (tdb->methods->brlock(tdb, ltype,
- FREELIST_TOP, 4*tdb->header.hash_size,
- flags)) {
+ if (tdb->methods->brlock(tdb, ltype, FREELIST_TOP, 0, flags)) {
if (flags & TDB_LOCK_WAIT) {
TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_lockall failed (%s)\n", strerror(errno)));
}
}
if (!mark_lock &&
- tdb->methods->brunlock(tdb, ltype,
- FREELIST_TOP, 4*tdb->header.hash_size)) {
+ tdb->methods->brunlock(tdb, ltype, FREELIST_TOP, 0)) {
TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_unlockall failed (%s)\n", strerror(errno)));
return -1;
}
unsigned int i, extra = 0;
if (tdb->allrecord_lock.count != 0) {
- tdb_brunlock(tdb, tdb->allrecord_lock.ltype,
- FREELIST_TOP, 4*tdb->header.hash_size);
+ tdb_brunlock(tdb, tdb->allrecord_lock.ltype, FREELIST_TOP, 0);
tdb->allrecord_lock.count = 0;
}
tdb_brunlock(tdb, lck->ltype, lck->off, 1);
}
}
- tdb->num_locks = extra;
tdb->num_lockrecs = extra;
if (tdb->num_lockrecs == 0) {
SAFE_FREE(tdb->lockrecs);