Berkeley DB: lock_put
Google

ee,hash,hashing,transaction,transactions,locking,logging,access method,access me thods,java,C,C++">

lock_put


#include <db.h>

int lock_put(DB_LOCKTAB *lt, DB_LOCK lock);

Description

The lock_put function is a simple interface to the lock_vec functionality.

It is equivalent to calling the lock_vec function with a single element list array, for which the op field is DB_LOCK_PUT and the lock field is represented by the lock argument.

The lock_put method returns success and failure as described for the lock_vec function.

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.

Errors

If a fatal error occurs in Berkeley DB, the lock_put function may fail and return DB_RUNRECOVERY, at which point all subsequent database calls will also return DB_RUNRECOVERY.

The lock_put function may fail and return errno 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), lock_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 lock_put function may fail and return errno for the following conditions:

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

EINVAL
An invalid flag value or parameter was specified.

See Also

lock_close, lock_detect, lock_get, lock_id, lock_open, lock_put, lock_stat, lock_unlink and lock_vec.