---
name: "File::Flock::Subprocess"
section: "3pm"
platform: "linux"
package: "libfile-flock-perl"
version: "2014.01-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/File::Flock::Subprocess"
---

# File::Flock::Subprocess(3pm)

## NAME

```
 File::Flock::Subprocess - file locking with flock in a subprocess
```

## SYNOPSIS

```
 use File::Flock::Subprocess;
 lock($filename);
 lock($filename, 'shared');
 lock($filename, undef, 'nonblocking');
 lock($filename, 'shared', 'nonblocking');
 unlock($filename);
 lock_rename($oldfilename, $newfilename)
 my $lock = new File::Flock '/somefile';
 $lock->unlock();
 $lock->lock_rename('/new/file');
 forget_locks();
```

## DESCRIPTION

This is a wrapper around File::Flock that starts a subprocess and does the locking in the subprocess with File::Flock.  The purpose of this is to handle operating systems (eg: Solaris) that do not retain locks across a call to **fork()**.

The sub-process for this is created with **fork()** when File::Flock::Subprocess is compiled.  I've tried to minimize the side-effects calling **fork()** by doing calling it early and by using **POSIX::\_exit()** to quit but it is still worth being aware of.  I suggest loading File::Flock::Subprocess early.

Use File::Flock::Forking to automatically detect when this is needed.

Read the docs for File::Flock for details of the API.

## ERRATA

Any errors reported by the locking proxy File::Flock::Subprocess starts will be reported as "Compilation Failed" errors because the proxy is started in a BEGIN{} block.

## LICENSE

Copyright (C) 2013 Google, Inc. This module may be used/copied/etc on the same terms as Perl itself.
