tdb: add TDB_MUTEX_LOCKING support
commitdb5bda56bf089ec6052d92bb78f3b49f7c812e00
authorVolker Lendecke <vl@samba.org>
Thu, 21 Feb 2013 15:34:32 +0000 (21 16:34 +0100)
committerJeremy Allison <jra@samba.org>
Thu, 22 May 2014 19:05:15 +0000 (22 21:05 +0200)
tree85f719a424147e838a05e77cf97bb3401d596988
parentcbd73ba1635c061fa71ff0476cbce087b389d1ad
tdb: add TDB_MUTEX_LOCKING support

This adds optional support for locking based on
shared robust mutexes.

The caller can use the TDB_MUTEX_LOCKING flag
together with TDB_CLEAR_IF_FIRST after verifying
with tdb_runtime_check_for_robust_mutexes() that
it's supported by the current system.

The caller should be aware that using TDB_MUTEX_LOCKING
implies some limitations, e.g. it's not possible to
have multiple read chainlocks on a given hash chain
from multiple processes.

Note: that this doesn't make tdb thread safe!

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Pair-Programmed-With: Michael Adam <obnox@samba.org>
Signed-off-by: Volker Lendecke <vl@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
34 files changed:
lib/tdb/ABI/tdb-1.3.0.sigs [new file with mode: 0644]
lib/tdb/common/io.c
lib/tdb/common/lock.c
lib/tdb/common/mutex.c [new file with mode: 0644]
lib/tdb/common/open.c
lib/tdb/common/summary.c
lib/tdb/common/tdb.c
lib/tdb/common/tdb_private.h
lib/tdb/common/transaction.c
lib/tdb/docs/mutex.txt [new file with mode: 0644]
lib/tdb/include/tdb.h
lib/tdb/test/run-3G-file.c
lib/tdb/test/run-bad-tdb-header.c
lib/tdb/test/run-check.c
lib/tdb/test/run-corrupt.c
lib/tdb/test/run-die-during-transaction.c
lib/tdb/test/run-endian.c
lib/tdb/test/run-incompatible.c
lib/tdb/test/run-nested-transactions.c
lib/tdb/test/run-nested-traverse.c
lib/tdb/test/run-no-lock-during-traverse.c
lib/tdb/test/run-oldhash.c
lib/tdb/test/run-open-during-transaction.c
lib/tdb/test/run-readonly-check.c
lib/tdb/test/run-rescue-find_entry.c
lib/tdb/test/run-rescue.c
lib/tdb/test/run-rwlock-check.c
lib/tdb/test/run-summary.c
lib/tdb/test/run-transaction-expand.c
lib/tdb/test/run-traverse-in-transaction.c
lib/tdb/test/run-wronghash-fail.c
lib/tdb/test/run-zero-append.c
lib/tdb/test/run.c
lib/tdb/wscript