F_RDLCK
case F_RDLCK:
case F_RDLCK: return wait ? READW_LT : READ_LT;
return F_RDLCK;
flk.l_type = F_RDLCK;
LTYPE(F_RDLCK);
if (flock->l_type != F_RDLCK || !lock->shared) {
flock->l_type = lock->shared ? F_RDLCK : F_WRLCK;
bool shared = flock->l_type == F_RDLCK;
&& flock.l_type == F_RDLCK))
flock.l_type = (operation & LOCK_SH) != 0 ? F_RDLCK : F_WRLCK;
type = F_RDLCK;
return type == F_RDLCK ? "shared" : type == F_WRLCK
return do_lock(fd, F_RDLCK, start, length);
F_RDLCK, // shared lock
flock.l_type = F_RDLCK;