IDZEBRA 2.2.11
flock.c File Reference
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
#include <idzebra/flock.h>
#include <zebra-lock.h>
#include <yaz/xmalloc.h>
#include <yaz/log.h>

Go to the source code of this file.

Data Structures

struct  zebra_lock_handle
struct  zebra_lock_info

Functions

char * zebra_mk_fname (const char *dir, const char *name)
ZebraLockHandle zebra_lock_create (const char *dir, const char *name)
void zebra_lock_destroy (ZebraLockHandle h)
static int unixLock (int fd, int type, int cmd)
int zebra_lock_w (ZebraLockHandle h)
int zebra_lock_r (ZebraLockHandle h)
int zebra_unlock (ZebraLockHandle h)
static int check_for_linuxthreads (void)
 see if the fcntl locking is not POSIX
void zebra_flock_init ()

Variables

static int initialized = 0
static int posix_locks = 1
Zebra_mutex lock_list_mutex
static struct zebra_lock_info * lock_list = 0
static int log_level = 0

Function Documentation

◆ check_for_linuxthreads()

int check_for_linuxthreads ( void )
static

see if the fcntl locking is not POSIX

The default posix_locks=1 is assumed.. This function sets posix_locks to zero if linuxthreads is in use.

Definition at line 360 of file flock.c.

References posix_locks.

Referenced by zebra_flock_init().

◆ unixLock()

int unixLock ( int fd,
int type,
int cmd )
static

Definition at line 221 of file flock.c.

References fd, and log_level.

Referenced by zebra_lock_r(), zebra_lock_w(), and zebra_unlock().

◆ zebra_flock_init()

void zebra_flock_init ( void )

◆ zebra_lock_create()

◆ zebra_lock_destroy()

◆ zebra_lock_r()

◆ zebra_lock_w()

◆ zebra_mk_fname()

char * zebra_mk_fname ( const char * dir,
const char * name )

Definition at line 84 of file flock.c.

References zebra_lock_info::fname.

Referenced by zebra_get_state(), zebra_lock_create(), and zebra_set_state().

◆ zebra_unlock()

Variable Documentation

◆ initialized

int initialized = 0
static

have this module (mutex) been initialized?

Definition at line 44 of file flock.c.

Referenced by zebra_flock_init(), and zebra_lock_create().

◆ lock_list

struct zebra_lock_info* lock_list = 0
static

our list of file locked files

Definition at line 53 of file flock.c.

Referenced by zebra_lock_create(), and zebra_lock_destroy().

◆ lock_list_mutex

Zebra_mutex lock_list_mutex

mutex for lock_list below

Definition at line 50 of file flock.c.

Referenced by zebra_flock_init(), zebra_lock_create(), and zebra_lock_destroy().

◆ log_level

int log_level = 0
static

Definition at line 82 of file flock.c.

Referenced by add(), begin(), begin(), begin(), calc(), calc_1(), cf_commit(), cf_commit_flat(), checkattr(), code_read(), create(), create(), create(), destroy(), destroy(), destroy(), end(), end(), end(), log_item(), log_pr(), map_basenames(), r_close(), r_close(), r_delete(), r_delete(), r_delete(), r_flush(), r_forward(), r_forward(), r_open(), r_open(), r_open(), r_pos(), r_pos(), r_pos_x(), r_read(), r_read(), r_read(), r_read_filter(), rfd_create_base(), rset_close(), rset_close_int(), rset_create_base(), rset_create_between(), rset_create_temp(), rset_default_forward(), rset_delete(), rset_dup(), rset_set_hits_limit(), rsisamb_create(), rsisamc_create(), rsmulti_andor_create(), tst_insert(), unixLock(), zebra_admin_import_begin(), zebra_admin_import_end(), zebra_admin_import_segment(), zebra_admin_shutdown(), zebra_admin_start(), zebra_begin_trans(), zebra_chdir(), zebra_clean(), zebra_close(), zebra_commit(), zebra_commit_ex(), zebra_compact(), zebra_create_database(), zebra_deleteResultSet(), zebra_drop_database(), zebra_end_trans(), zebra_end_transaction(), zebra_errAdd(), zebra_errCode(), zebra_errString(), zebra_flock_init(), zebra_flush_reg(), zebra_get_resource(), zebra_get_shadow_enable(), zebra_get_state(), zebra_init(), zebra_lock_create(), zebra_lock_destroy(), zebra_lock_r(), zebra_lock_w(), zebra_octet_term_encoding(), zebra_open(), zebra_record_encoding(), zebra_records_retrieve(), zebra_repository_index(), zebra_repository_show(), zebra_result(), zebra_scan(), zebra_search_PQF(), zebra_search_RPN_x(), zebra_select_database(), zebra_select_databases(), zebra_set_resource(), zebra_set_shadow_enable(), zebra_set_state(), zebra_shadow_enable(), zebra_snippets_log(), zebra_sort(), zebra_sort_by_specstr(), zebra_start_res(), zebra_string_norm(), zebra_trans_no(), zebra_unlock(), and zebra_update_record().

◆ posix_locks

int posix_locks = 1
static

whether fcntl locks are shared for all threads in a process (POSIX)

Definition at line 47 of file flock.c.

Referenced by check_for_linuxthreads(), zebra_flock_init(), zebra_lock_create(), zebra_lock_destroy(), zebra_lock_r(), zebra_lock_w(), and zebra_unlock().