Lock helper
You can view the source on GitHub.
Often used with the loading helper, it allows you to obtain a lock, and ensures that no-one else can edit a particular resource.
Example setup
For a site wide resource:
$lock = new lock('example');
For a particular resource:
$lock = new lock('item', $id);
Example usage
Checks to see someone has the lock, but doesn't try to open if not:
if ($lock->locked()) {
}
Check to see if we have the lock, but doesn't try to open if not:
if ($lock->check()) {
}
Try to open the lock, set data, and close afterwards.
if ($lock->open()) {
    $lock->data_set('name', 'Craig');
    $lock->data_set(array(
            'field_1' => 'AAA',
            'field_2' => 'BBB',
            'field_3' => 'CCC',
        ));
    sleep(5);
    if (!$lock->open()) {
        // Check to see if we still have the lock (not expired)
    }
    $lock->time_out_set(30); // If more time is needed
    sleep(5);
    $lock->close();
} else {
    $this->set('name', $lock->data_get('name'));
}