imag/libimagstore
Matthias Beyer 7b5d37a039 Fix: Make sure we release the Write-Lock
This was suggested by Marcel Müller, who also debugged this issue and
found that this snippet was the error.

The problem was, that we had the write-lock when starting the hooks. If
the hook runs into an Err() mapping part where the Entry could already
be drop()ed, Rust tries to be smart and drops the object. As we are
still in the creation code of the entry, this paniced as we still hold
the W-Lock and the drop() tryies to call _update() on the entry, which
also tries to W-lock it.

With the new additional scope, the W-lock gets dropped early and we do
not have this problem anymore.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Suggested-by: Marcel Müller <neikos@neikos.email>
Reported-by: Matthias Beyer <mail@beyermatthias.de>
2016-08-01 20:00:31 +02:00
..
src Fix: Make sure we release the Write-Lock 2016-08-01 20:00:31 +02:00
.gitignore Add: libimagstore 2016-01-09 23:51:31 +01:00
Cargo.toml Add Store::verify() 2016-07-17 00:59:04 +02:00
README.md Add README for libimagstore 2016-03-25 15:56:42 +01:00

libimagstore

The store is the heart of everything. Here lives the data, the complexity and the performance bottleneck.

The store offeres read/write access to all entries, a hook system to do on-the-fly modification of incoming/outgoing files and so on.

The store itself does not offer functionality, but has a commandline interface "imag-store" which can do basic things with the store.