Integration

The latest commit to https://github.com/burgerdev/gsoc2014 makes the lazy connected components operator work with arbitrary input data (as regarding dimensionality). Initially I thought that it would be a pain to change all the stuff I had carefully crafted to work with just 3d data, but it turned out not to be that bad. Most of the internals handle a thingy I called ‘ChunkIndex’ to access data, save states and so on. This index triple is used as a key to arrays and dictionaries, which made it easy to just switch to a quintuple. The only thing that really needed changing was the logic behind ‘generateNeighbours’ - time and channel neighbours are simply ignored.

[...]


More Dimensions

The most recent commits in master are finally thread-safe. At least I hope so. The snake is nicely labeled with a continuous yellow, and everything else seems to work smooth. I had to make some sacrifices to get this to work, though. First of all, I swapped the Vigra UnionFind with a Python one, because I want it to be thread safe - writing a wrapper for this seemed like overkill. The other problem I encountered with locks and lazyflow: when I tried to use an OpCompressedcache instead of a ChunkedArray, I ended up getting deadlocks no matter how hard I tried to find a reason for it. These deadlocks show up when launching requests from within critical operations. I asssume there must be some special functionality regarding thread management that

[...]