Skip to content

File lock_manager.h

FileList > cubrid > src > transaction > lock_manager.h

Go to the source code of this file

  • #include "config.h"
  • #include "connection_error.h"
  • #include "error_manager.h"
  • #include "locator.h"
  • #include "log_comm.h"
  • #include "oid.h"
  • #include "storage_common.h"
  • #include "thread_compat.hpp"
  • #include <time.h>
  • #include <stdio.h>

Classes

Type Name
struct lk_acqobj_lock
struct lk_acquired_locks
struct lk_composite_lock
struct lk_entry
struct lk_lockcomp
struct lk_lockcomp_class
struct lk_res
struct lk_res_key

Public Types

Type Name
enum KEY_LOCK_ESCALATION
typedef struct lk_acqobj_lock LK_ACQOBJ_LOCK
typedef struct lk_acquired_locks LK_ACQUIRED_LOCKS
typedef struct lk_composite_lock LK_COMPOSITE_LOCK
typedef struct lk_entry LK_ENTRY
typedef struct lk_lockcomp LK_LOCKCOMP
typedef struct lk_lockcomp_class LK_LOCKCOMP_CLASS
typedef struct lk_res LK_RES
typedef struct lk_res_key LK_RES_KEY
enum LOCK_RESOURCE_TYPE
enum lock__manager_8h_1a0ba582387b4cb6c2c6d1dd3003689d07
enum lock__manager_8h_1a282841548f1d79a386bbeb4172ebf942
enum lock__manager_8h_1af9e099c537bf634041abbe01e4c83422

Public Functions

Type Name
void lock_abort_composite_lock (LK_COMPOSITE_LOCK * comp_lock)
int lock_add_composite_lock (THREAD_ENTRY * thread_p, LK_COMPOSITE_LOCK * comp_lock, const OID * oid, const OID * class_oid)
int lock_classes_lock_hint (THREAD_ENTRY * thread_p, LC_LOCKHINT * lockhint)
void lock_clear_deadlock_victim (int tran_index)
void lock_deadlock_detect_daemon_get_stats (UINT64 * statsp)
int lock_demote_class_lock (THREAD_ENTRY * thread_p, const OID * oid, LOCK lock, LOCK * ex_lock)
void lock_demote_read_class_lock_for_checksumdb (THREAD_ENTRY * thread_p, int tran_index, const OID * class_oid)
void lock_dump_acquired (FILE * fp, LK_ACQUIRED_LOCKS * acqlocks)
void lock_finalize (void)
int lock_finalize_composite_lock (THREAD_ENTRY * thread_p, LK_COMPOSITE_LOCK * comp_lock)
void lock_force_thread_timeout_lock (THREAD_ENTRY * thread_p)
LK_ENTRY * lock_get_class_lock (THREAD_ENTRY * thread_p, const OID * class_oid)
int lock_get_lock_holder_tran_index (THREAD_ENTRY * thread_p, char ** out_buf, int waiter_index, LK_RES * res)
unsigned int lock_get_number_object_locks (void)
LOCK lock_get_object_lock (const OID * oid, const OID * class_oid)
int lock_has_lock_on_object (const OID * oid, const OID * class_oid, LOCK lock)
bool lock_has_lock_transaction (int tran_index)
bool lock_has_xlock (THREAD_ENTRY * thread_p)
int lock_hold_object_instant (THREAD_ENTRY * thread_p, const OID * oid, const OID * class_oid, LOCK lock)
int lock_initialize (void)
int lock_initialize_composite_lock (THREAD_ENTRY * thread_p, LK_COMPOSITE_LOCK * comp_lock)
bool lock_is_instant_lock_mode (int tran_index)
bool lock_is_waiting_transaction (int tran_index)
void lock_notify_isolation_incons (THREAD_ENTRY * thread_p, bool(*)(const OID *class_oid, const OID *oid, void *args) fun, void * args)
int lock_object (THREAD_ENTRY * thread_p, const OID * oid, const OID * class_oid, LOCK lock, int cond_flag)
int lock_object_wait_msecs (THREAD_ENTRY * thread_p, const OID * oid, const OID * class_oid, LOCK lock, int cond_flag, int wait_msecs)
int lock_reacquire_crash_locks (THREAD_ENTRY * thread_p, LK_ACQUIRED_LOCKS * acqlocks, int tran_index)
void lock_remove_all_inst_locks (THREAD_ENTRY * thread_p, int tran_index, const OID * class_oid, LOCK lock)
int lock_rep_read_tran (THREAD_ENTRY * thread_p, LOCK lock, int cond_flag)
int lock_scan (THREAD_ENTRY * thread_p, const OID * class_oid, int cond_flag, LOCK class_lock)
void lock_start_instant_lock_mode (int tran_index)
void lock_stop_instant_lock_mode (THREAD_ENTRY * thread_p, int tran_index, bool need_unlock)
int lock_subclass (THREAD_ENTRY * thread_p, const OID * subclass_oid, const OID * superclass_oid, LOCK lock, int cond_flag)
void lock_unlock_all (THREAD_ENTRY * thread_p)
void lock_unlock_all_shared_get_all_exclusive (THREAD_ENTRY * thread_p, LK_ACQUIRED_LOCKS * acqlocks)
void lock_unlock_classes_lock_hint (THREAD_ENTRY * thread_p, LC_LOCKHINT * lockhint)
void lock_unlock_object (THREAD_ENTRY * thread_p, const OID * oid, const OID * class_oid, LOCK lock, bool force)
void lock_unlock_object_donot_move_to_non2pl (THREAD_ENTRY * thread_p, const OID * oid, const OID * class_oid, LOCK lock)
void lock_unlock_objects_lock_set (THREAD_ENTRY * thread_p, LC_LOCKSET * lockset)
const char * lock_wait_state_to_string (int state)

Public Types Documentation

enum KEY_LOCK_ESCALATION

enum KEY_LOCK_ESCALATION {
    NO_KEY_LOCK_ESCALATION = 0,
    NEED_KEY_LOCK_ESCALATION = 1,
    KEY_LOCK_ESCALATED = 2
};

typedef LK_ACQOBJ_LOCK

typedef struct lk_acqobj_lock LK_ACQOBJ_LOCK;

typedef LK_ACQUIRED_LOCKS

typedef struct lk_acquired_locks LK_ACQUIRED_LOCKS;

typedef LK_COMPOSITE_LOCK

typedef struct lk_composite_lock LK_COMPOSITE_LOCK;

typedef LK_ENTRY

typedef struct lk_entry LK_ENTRY;

typedef LK_LOCKCOMP

typedef struct lk_lockcomp LK_LOCKCOMP;

typedef LK_LOCKCOMP_CLASS

typedef struct lk_lockcomp_class LK_LOCKCOMP_CLASS;

typedef LK_RES

typedef struct lk_res LK_RES;

typedef LK_RES_KEY

typedef struct lk_res_key LK_RES_KEY;

enum LOCK_RESOURCE_TYPE

enum LOCK_RESOURCE_TYPE {
    LOCK_RESOURCE_INSTANCE,
    LOCK_RESOURCE_CLASS,
    LOCK_RESOURCE_ROOT_CLASS,
    LOCK_RESOURCE_OBJECT
};

enum lock__manager_8h_1a0ba582387b4cb6c2c6d1dd3003689d07

enum lock__manager_8h_1a0ba582387b4cb6c2c6d1dd3003689d07 {
    LK_GRANTED = 1,
    LK_NOTGRANTED = 2,
    LK_NOTGRANTED_DUE_ABORTED = 3,
    LK_NOTGRANTED_DUE_TIMEOUT = 4,
    LK_NOTGRANTED_DUE_ERROR = 5,
    LK_GRANTED_PUSHINSET_LOCKONE = 6,
    LK_GRANTED_PUSHINSET_RELOCKALL = 7
};

enum lock__manager_8h_1a282841548f1d79a386bbeb4172ebf942

enum lock__manager_8h_1a282841548f1d79a386bbeb4172ebf942 {
    LK_ZERO_WAIT = 0,
    LK_INFINITE_WAIT = -1,
    LK_FORCE_ZERO_WAIT = -2
};

enum lock__manager_8h_1af9e099c537bf634041abbe01e4c83422

enum lock__manager_8h_1af9e099c537bf634041abbe01e4c83422 {
    LK_UNCOND_LOCK,
    LK_COND_LOCK
};

Public Functions Documentation

function lock_abort_composite_lock

void lock_abort_composite_lock (
    LK_COMPOSITE_LOCK * comp_lock
) 

function lock_add_composite_lock

int lock_add_composite_lock (
    THREAD_ENTRY * thread_p,
    LK_COMPOSITE_LOCK * comp_lock,
    const  OID * oid,
    const  OID * class_oid
) 

function lock_classes_lock_hint

int lock_classes_lock_hint (
    THREAD_ENTRY * thread_p,
    LC_LOCKHINT * lockhint
) 

function lock_clear_deadlock_victim

void lock_clear_deadlock_victim (
    int tran_index
) 

function lock_deadlock_detect_daemon_get_stats

void lock_deadlock_detect_daemon_get_stats (
    UINT64 * statsp
) 

function lock_demote_class_lock

int lock_demote_class_lock (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    LOCK lock,
    LOCK * ex_lock
) 

function lock_demote_read_class_lock_for_checksumdb

void lock_demote_read_class_lock_for_checksumdb (
    THREAD_ENTRY * thread_p,
    int tran_index,
    const  OID * class_oid
) 

function lock_dump_acquired

void lock_dump_acquired (
    FILE * fp,
    LK_ACQUIRED_LOCKS * acqlocks
) 

function lock_finalize

void lock_finalize (
    void
) 

function lock_finalize_composite_lock

int lock_finalize_composite_lock (
    THREAD_ENTRY * thread_p,
    LK_COMPOSITE_LOCK * comp_lock
) 

function lock_force_thread_timeout_lock

void lock_force_thread_timeout_lock (
    THREAD_ENTRY * thread_p
) 

function lock_get_class_lock

LK_ENTRY * lock_get_class_lock (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid
) 

function lock_get_lock_holder_tran_index

int lock_get_lock_holder_tran_index (
    THREAD_ENTRY * thread_p,
    char ** out_buf,
    int waiter_index,
    LK_RES * res
) 

function lock_get_number_object_locks

unsigned  int lock_get_number_object_locks (
    void
) 

function lock_get_object_lock

LOCK lock_get_object_lock (
    const  OID * oid,
    const  OID * class_oid
) 

function lock_has_lock_on_object

int lock_has_lock_on_object (
    const  OID * oid,
    const  OID * class_oid,
    LOCK lock
) 

function lock_has_lock_transaction

bool lock_has_lock_transaction (
    int tran_index
) 

function lock_has_xlock

bool lock_has_xlock (
    THREAD_ENTRY * thread_p
) 

function lock_hold_object_instant

int lock_hold_object_instant (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    const  OID * class_oid,
    LOCK lock
) 

function lock_initialize

int lock_initialize (
    void
) 

function lock_initialize_composite_lock

int lock_initialize_composite_lock (
    THREAD_ENTRY * thread_p,
    LK_COMPOSITE_LOCK * comp_lock
) 

function lock_is_instant_lock_mode

bool lock_is_instant_lock_mode (
    int tran_index
) 

function lock_is_waiting_transaction

bool lock_is_waiting_transaction (
    int tran_index
) 

function lock_notify_isolation_incons

void lock_notify_isolation_incons (
    THREAD_ENTRY * thread_p,
    bool (*)( const  OID *class_oid, const  OID *oid, void *args) fun,
    void * args
) 

function lock_object

int lock_object (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    const  OID * class_oid,
    LOCK lock,
    int cond_flag
) 

function lock_object_wait_msecs

int lock_object_wait_msecs (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    const  OID * class_oid,
    LOCK lock,
    int cond_flag,
    int wait_msecs
) 

function lock_reacquire_crash_locks

int lock_reacquire_crash_locks (
    THREAD_ENTRY * thread_p,
    LK_ACQUIRED_LOCKS * acqlocks,
    int tran_index
) 

function lock_remove_all_inst_locks

void lock_remove_all_inst_locks (
    THREAD_ENTRY * thread_p,
    int tran_index,
    const  OID * class_oid,
    LOCK lock
) 

function lock_rep_read_tran

int lock_rep_read_tran (
    THREAD_ENTRY * thread_p,
    LOCK lock,
    int cond_flag
) 

function lock_scan

int lock_scan (
    THREAD_ENTRY * thread_p,
    const  OID * class_oid,
    int cond_flag,
    LOCK class_lock
) 

function lock_start_instant_lock_mode

void lock_start_instant_lock_mode (
    int tran_index
) 

function lock_stop_instant_lock_mode

void lock_stop_instant_lock_mode (
    THREAD_ENTRY * thread_p,
    int tran_index,
    bool need_unlock
) 

function lock_subclass

int lock_subclass (
    THREAD_ENTRY * thread_p,
    const  OID * subclass_oid,
    const  OID * superclass_oid,
    LOCK lock,
    int cond_flag
) 

function lock_unlock_all

void lock_unlock_all (
    THREAD_ENTRY * thread_p
) 

function lock_unlock_all_shared_get_all_exclusive

void lock_unlock_all_shared_get_all_exclusive (
    THREAD_ENTRY * thread_p,
    LK_ACQUIRED_LOCKS * acqlocks
) 

function lock_unlock_classes_lock_hint

void lock_unlock_classes_lock_hint (
    THREAD_ENTRY * thread_p,
    LC_LOCKHINT * lockhint
) 

function lock_unlock_object

void lock_unlock_object (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    const  OID * class_oid,
    LOCK lock,
    bool force
) 

function lock_unlock_object_donot_move_to_non2pl

void lock_unlock_object_donot_move_to_non2pl (
    THREAD_ENTRY * thread_p,
    const  OID * oid,
    const  OID * class_oid,
    LOCK lock
) 

function lock_unlock_objects_lock_set

void lock_unlock_objects_lock_set (
    THREAD_ENTRY * thread_p,
    LC_LOCKSET * lockset
) 

function lock_wait_state_to_string

const  char * lock_wait_state_to_string (
    int state
) 


The documentation for this class was generated from the following file cubrid/src/transaction/lock_manager.h