<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>zc.lockfile</name>
<shortdesc>Basic inter-process locks</shortdesc>
<description>*************************
Basic inter-process locks
*************************

The zc.lockfile package provides a basic portable implementation of
interprocess locks using lock files.  The purpose if not specifically
to lock files, but to simply provide locks with an implementation
based on file-locking primitives.  Of course, these locks could be
used to mediate access to *other* files.  For example, the ZODB file
storage implementation uses file locks to mediate access to
file-storage database files.  The database files and lock file files
are separate files.

.. contents::

Detailed Documentation
**********************

Lock file support
=================

The ZODB lock_file module provides support for creating file system
locks.  These are locks that are implemented with lock files and
OS-provided locking facilities.  To create a lock, instantiate a
LockFile object with a file name:

    &gt;&gt;&gt; import zc.lockfile
    &gt;&gt;&gt; lock = zc.lockfile.LockFile('lock')

If we try to lock the same name, we'll get a lock error:

    &gt;&gt;&gt; import zope.testing.loggingsupport
    &gt;&gt;&gt; handler = zope.testing.loggingsupport.InstalledHandler('zc.lockfile')
    &gt;&gt;&gt; try:
    ...     zc.lockfile.LockFile('lock')
    ... except zc.lockfile.LockError:
    ...     print "Can't lock file"
    Can't lock file

    &gt;&gt;&gt; for record in handler.records:
    ...     print record.levelname, record.getMessage()
    ERROR Error locking file lock; pid=UNKNOWN

To release the lock, use it's close method:

    &gt;&gt;&gt; lock.close()

The lock file is not removed.  It is left behind:

    &gt;&gt;&gt; import os
    &gt;&gt;&gt; os.path.exists('lock')
    True

Of course, now that we've released the lock, we can created it again:

    &gt;&gt;&gt; lock = zc.lockfile.LockFile('lock')
    &gt;&gt;&gt; lock.close()

.. Cleanup

    &gt;&gt;&gt; import os
    &gt;&gt;&gt; os.remove('lock')


Change History
***************

1.0.0 (2008-10-18)
====================

- Fixed a small bug in error logging.

1.0.0b1 (2007-07-18)
====================

Initial release

Download
**********************</description>
<homepage rdf:resource="http://www.python.org/pypi/zc.lockfile" />
<maintainer><foaf:Person><foaf:name>Jim Fulton</foaf:name>
<foaf:mbox_sha1sum>0491e393764bbbfa13324a845db4ee27f7641b78</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>1.0.0</revision></Version></release>
</Project></rdf:RDF>