1fullock(3)                          FULLOCK                         fullock(3)
2
3
4

NAME

6       fullock - Fast User Level LOCK (FULLOCK) library for C/C++
7

SYNOPSIS

9       Please see fullock.h for full description.
10

DESCRIPTION

12       fullock  is  an  open-source  software for user level lock library sup‐
13       ported by Yahoo! JAPAN.  It runs on user level and provides  two  types
14       lock.   One is a shared reader/writer lock which has the same function‐
15       ality with pthread_rwlock.  Another is a shared mutex lock  which  also
16       has the same functionality with pthread_mutex.
17
18       Here is primary fullock features:
19
20       1.     fullock  is a thread safety library which can be used for multi-
21              processing as well as for multi-threading.
22
23       2.     fullock releases a mutex  lock  safely  even  if  a  lock  owner
24              process exit with 0 in which case OS doesn't release the lock.
25
26       3.     fullock  provides  a  shared  reader/writer  lock.  A lock owner
27              thread can get another lock again without deadlock.
28
29       Please visit our website and get more details at:
30
31              https://github.com/yahoojapan/fullock
32

FUNCTIONS

34       FULLOCK provides following programming interface:
35
36             void fullock_print_version(...)
37             bool fullock_set_no_robust(...)
38             bool fullock_set_low_robust(...)
39             bool fullock_set_high_robust(...)
40             bool fullock_set_noretry_allow_nomap(...)
41             bool fullock_set_noretry_deny_nomap(...)
42             bool fullock_set_retry_allow_nomap(...)
43             bool fullock_set_retry_deny_nomap(...)
44             bool fullock_set_no_freeunit(...)
45             bool fullock_set_fd_freeunit(...)
46             bool fullock_set_offset_freeunit(...)
47             bool fullock_set_robust_check_count(...)
48             bool fullock_reinitialize(...)
49             bool fullock_reinitialize_ex(...)
50             int fullock_mutex_lock(...)
51             int fullock_mutex_trylock(...)
52             int fullock_mutex_timedlock(...)
53             int fullock_mutex_unlock(...)
54             int fullock_rwlock_rdlock(...)
55             int fullock_rwlock_tryrdlock(...)
56             int fullock_rwlock_timedrdlock(...)
57             int fullock_rwlock_wrlock(...)
58             int fullock_rwlock_trywrlock(...)
59             int fullock_rwlock_timedwrlock(...)
60             int fullock_rwlock_unrwlock(...)
61             bool fullock_rwlock_islocked(...)
62             int fullock_cond_timedwait(...)
63             int fullock_cond_wait(...)
64             int fullock_cond_signal(...)
65             int fullock_cond_broadcast(...)
66
67

ENVIRONMENT

69       fullock uses useful environments for debug that change its behaviour.
70
71       FLCKDBGMODE         specifies debugging level: INFO/WAN/ERR/SILENT
72
73       FLCKDBGFILE         output file path for message(default: stderr)
74
75       FLCKAUTOINIT        specify YES/NO, if this environment has  YES,  ful‐
76                           lock  does  not initialize shared memory file. This
77                           environment is for debugging.
78
79       FLCKROBUSTMODE      specify NO/LOW/HIGH for robust mode.
80
81       FLCKNOMAPMODE       specify ALLOW(ALLOW_NORETRY) / DENY(DENY_NORETRY) /
82                           ALLOW_RETRY  / DENY_RETRY for fault tolerant.  This
83                           value determines the behavior of the case  can  not
84                           be mapped.
85
86       FLCKFREEUNITMODE    specify  NO/FD/OFFSET/ALWAYS, it specifies the open
87                           method of unit management area to be  used  in  the
88                           reader/writer lock.
89
90       FLCKROBUSTCHKCNT    If fullock is operating in a high robust mode, this
91                           value sets the processing frequency for  the  dead‐
92                           lock detection.
93
94       FLCKUMASK           specify  umask  for the shared memory file which is
95                           made by fullock.
96
97       FLCKDIRPATH         specify directory path for the shared  memory  file
98                           which is made by fullock.
99
100       FLCKFILENAME        specify  the  shared memory file name which is made
101                           by fullock.
102
103       FLCKFILECNT         specify file count for the reader/writer lock.
104
105       FLCKOFFETCNT        specify offset count for the reader/writer lock.
106
107       FLCKLOCKERCNT       specify   the   process(thread)   count   for   the
108                           reader/writer lock and mutex at same time.
109
110       FLCKNMTXCNT         specify count for named mutex.
111
112       FLCKNCONDCNT        specify count for named condition variable.
113
114       FLCKWAITERCNT       specify named condition waiter count for named con‐
115                           dition variable.
116

SEE ALSO

118       The web site can be found at:
119
120              https://github.com/yahoojapan/fullock
121

REPORTING BUGS

123       Please make sure you use the latest version in the web site:
124
125              https://github.com/yahoojapan/fullock
126
127       Then, please submit your questions or comments here:
128
129              https://github.com/yahoojapan/fullock/issues
130

AUTHORS

132       Takeshi Nakatani <ggtakec@gmail.com>
133
135       MIT License
136
137       Copyright (C) 2015 Yahoo Japan Corporation
138
139       Permission is hereby granted, free of charge, to any person obtaining a
140       copy  of  this  software and associated documentation files (the "Soft‐
141       ware"), to deal in the Software without restriction, including  without
142       limitation the rights to use, copy, modify, merge, publish, distribute,
143       sublicense, and/or sell copies of the Software, and to  permit  persons
144       to  whom  the  Software is furnished to do so, subject to the following
145       conditions:
146
147       The above copyright notice and this permission notice shall be included
148       in all copies or substantial portions of the Software.
149
150       THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
151       OR IMPLIED, INCLUDING  BUT  NOT  LIMITED  TO  THE  WARRANTIES  OF  MER‐
152       CHANTABILITY,  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
153       NO EVENT SHALL THE AUTHORS OR  COPYRIGHT  HOLDERS  BE  LIABLE  FOR  ANY
154       CLAIM,  DAMAGES  OR  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
155       TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFT‐
156       WARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
157
158
159
160fullock                            May 2015                         fullock(3)
Impressum