Berkeley DB: DbLock::put
Полезная информация


#include <db_cxx.h>

int DbLock::put(DbLockTab *lt);


The DbLock::put method is a simple interface to the DbLockTab::vec functionality.

It is equivalent to calling the DbLockTab::vec method with a single element list array, for which the op field is DB_LOCK_PUT and the lock field is represented by the DbLock object. The DbLock::put method returns success and failure as described for the DbLockTab::vec method.

If a process dies while holding locks, those locks remain held and are never released. In this case, all processes should exit as quickly as possible, so that database recovery can be run.


If a fatal error occurs in Berkeley DB, the DbLock::put method may fail and either return DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY, at which point all subsequent database calls will also fail in the same way. Methods marked as returning errno will, by default, throw an exception that encapsulates the error information. The default error behavior can be changed, see DbException.

The DbLock::put method may fail and throw an exception for any of the errors specified for the following Berkeley DB and C library functions: abort(3), fcntl(3), fflush(3), fprintf(3), fsync(3), getpid(3), DbLockTab::detect, lseek(3), memcpy(3), memset(3), mmap(3), munmap(3), shmat(3), shmdt(3), strerror(3), vfprintf(3), vsnprintf(3), and write(3).

In addition, the DbLock::put method may fail and throw an exception or return errno for the following conditions:

An attempt was made to release lock held by another locker.

An invalid flag value or parameter was specified.



See Also