Todo List for Pixie:
1) Locking
2) Hooks
3) Rootset tracking
4) Index by Class
5) Generic Indexing
6) GC
==== NOTES ON THE ABOVE ARE BELOW HERE ====
LOCKING
=======
1) a lock store goes at the backend.
2) locking achieved via $D::D::Toaster
use Data::Dumper;
$Data::Dumper::Toaster = 'main::mymethod';
my $data = bless( {
locked => 1,
oid => '120479a717f9712341214e',
some => 'data',
}, 'MyObject');
my $dat = Dumper( $data );
print $dat;
print Dumper( eval $dat );
sub mymethod {
my $self = shift;
print "Locking $self\n";
if (!$self->{locked}) {
$self->{ locked } = 1;
} else {
return bless( { masq => { id => $self->{oid} } }, "LOCKER" );
}
return $self;
}
3) lock on gets
4) hang 'Lock Cleaner' objects inside other objects that clear locks on DESTROY