---
name: "Mail::Box::Locker::FcntlLock"
section: "3pm"
platform: "linux"
package: "perl-mail-box"
version: "4.02-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Mail::Box::Locker::FcntlLock"
---

# Mail::Box::Locker::FcntlLock(3pm)

lock a folder using File::FcntlLock

## NAME

Mail::Box::Locker::FcntlLock - lock a folder using File::FcntlLock

## INHERITANCE

```
 Mail::Box::Locker::FcntlLock
   is a Mail::Box::Locker
   is a Mail::Reporter
```

## SYNOPSIS

```
  See Mail::Box::Locker
```

## DESCRIPTION

This locker object is uses File::FcntlLock, and was contributed by Jim in Aus. It is close to Mail::Box::Locker::POSIX, but does work on more systems, for instance Darwin.

You will need to install File::FcntlLock separately: there is no dependency to it by the MailBox distribution.

Extends "DESCRIPTION" in Mail::Box::Locker.

## METHODS

Extends "METHODS" in Mail::Box::Locker.

### Constructors

Extends "Constructors" in Mail::Box::Locker.

- $class-\>**new**(%options)

  Inherited, see "METHODS" in Mail::Box::Locker

  ```
   -Option --Defined in       --Default
    expires  Mail::Box::Locker  1 hour
    file     Mail::Box::Locker  undef
    folder   Mail::Box::Locker  <C<undef>>
    method   Mail::Box::Locker  FcntlLock
    timeout  Mail::Box::Locker  10
  ```

  - expires =\> $seconds

    - file =\> $file

    - folder =\> $folder

    - method =\> $name\|CLASS\|\\@names

    - timeout =\> $seconds\|'NOTIMEOUT'

    ### Attributes

Extends "Attributes" in Mail::Box::Locker.

- $obj-\>**expires**( \[SECONDS\] )

  Inherited, see "Attributes" in Mail::Box::Locker

- $obj-\>**filename**( \[$filename\] )

  Inherited, see "Attributes" in Mail::Box::Locker

- $obj-\>**folder**( \[$folder\] )

  Inherited, see "Attributes" in Mail::Box::Locker

- $obj-\>**name**()

  Inherited, see "Attributes" in Mail::Box::Locker

- $obj-\>**timeout**( \[SECONDS\] )

  Inherited, see "Attributes" in Mail::Box::Locker

### Locking

Extends "Locking" in Mail::Box::Locker.

- $obj-\>**hasLock**()

  Inherited, see "Locking" in Mail::Box::Locker

- $obj-\>**isLocked**()

  Inherited, see "Locking" in Mail::Box::Locker

- $obj-\>**lock**()

  Inherited, see "Locking" in Mail::Box::Locker

- $obj-\>**unlock**()

  Inherited, see "Locking" in Mail::Box::Locker

### Error handling

Extends "Error handling" in Mail::Box::Locker.

- $obj-\>**AUTOLOAD**()

  Inherited, see "Error handling" in Mail::Reporter

- $obj-\>**notImplemented**()

  Inherited, see "Error handling" in Mail::Reporter

### Cleanup

Extends "Cleanup" in Mail::Box::Locker.

- $obj-\>**DESTROY**()

  Inherited, see "Cleanup" in Mail::Box::Locker

## DIAGNOSTICS

- Fault: Will never get a FcntlLock lock at $file for $folder: $!

  Tried to lock the `$folder`, but it did not succeed.  The error code received from the OS indicates that it will not succeed ever, so we do not need to try again. Cast by `lock()`

- Error: class $package does not implement method $method.

  Fatal error: the specific `$package` (or one of its superclasses) does not implement this method where it should. This message means that some other related classes do implement this method however the class at hand does not.  Probably you should investigate this and probably inform the author of the package. Cast by `notImplemented()`

- Warning: folder $name already lockf'd.

  Cast by `lock()`

- Fault: unable to check lock file $file for $folder: $!

  To check whether the filename is used to flock a folder, the file must be opened.  Apparently this fails, which does not mean that the folder is locked neither that it is unlocked.

- Fault: unable to open FcntlLock lock file $file for $folder

  For FcntlLock style locking, a `$folder` it must be opened, which does not succeed for the specified reason. Cast by `lock()`

## SEE ALSO

This module is part of Mail-Box version 4.02, built on April 10, 2026. Website: *http://perl.overmeer.net/CPAN/*

## LICENSE

For contributors see file ChangeLog.

This software is copyright (c) 2001-2026 by Mark Overmeer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
