netatalk
4.4.3
Free and Open Source Apple Filing Protocol (AFP) Server
Toggle main menu visibility
Loading...
Searching...
No Matches
ad_lock.h File Reference
#include <
atalk/adouble.h
>
Go to the source code of this file.
Macros
#define
adf_lock_init
(a)
#define
adf_lock_free
(a)
Macro Definition Documentation
◆
adf_lock_free
#define adf_lock_free
(
a
)
Value:
do
{ \
int
i; \
if (!(a)->adf_lock) \
break
; \
for (i = 0; i < (a)->adf_lockcount; i++) { \
adf_lock_t
*lock = (a)->adf_lock + i; \
/* Always release fcntl lock when freeing array */
\
if ((a)->adf_fd >= 0) { \
lock->
lock
.l_type = F_UNLCK; \
if (fcntl((a)->adf_fd, F_SETLK, &lock->
lock
) == -1) { \
LOG(
log_warning
,
logtype_default
, \
"adf_lock_free: fcntl unlock failed on fd %d: %s"
, \
(a)->adf_fd, strerror(errno)); \
} \
} \
/* Only free refcount memory when last reference */
\
if (--(*lock->
refcount
) < 1) { \
free(lock->
refcount
); \
} \
} \
free((a)->adf_lock); \
adf_lock_init(a); \
}
while
(0)
logtype_default
@ logtype_default
Definition
logger.h:34
log_warning
@ log_warning
Definition
logger.h:21
adf_lock_t
Definition
adouble.h:163
adf_lock_t::lock
struct flock lock
Definition
adouble.h:164
adf_lock_t::refcount
int * refcount
Definition
adouble.h:166
◆
adf_lock_init
#define adf_lock_init
(
a
)
Value:
do
{ \
(a)->adf_lockmax = 0; \
(a)->adf_lockcount = 0; \
(a)->adf_lock = NULL; \
}
while
(0)
libatalk
adouble
ad_lock.h
Generated by
1.17.0