diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 43838dcf6..8ae4e76d3 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -20,6 +20,23 @@ --> +

Database Multi-locking

+ +

dbLock.c is re-written with an expanded API, and the removal of global mutex locks.

+ +

The new API functions center around dbScanLockMany(), which behaves like dbScanLock() +applied to an arbitrary group of records. dbLockerAlloc() is used to prepare a list +or record pointers, then dbScanLockMany() is called. When it returns, all of the records +listed may be accessed (in any order) until dbScanUnlockMany() is called.

+ +

The Application Developer's Guide has been updated to describe the API and implementation +is more detail.

+ +

Previously a global mutex 'lockSetModifyLock' was locked and unlocked +during dbScanLock(), acting as a sequencing point for otherwise unrelated calls. +The new dbLock.c implementation does not include any global mutex in dbScanLock() or dbScanLockMany(). +Locking/unlocking of unrelated lock sets is now completely concurrent.

+

Generate Version Header

A Perl script and Makefile rules have been added to allow modules to generate