Nit: Avoid undefined behavior.
Initialize version values to 0.
Add relax_fence() to the lock() function.

This avoids deadlock.
Maintain true_array_state.

That's atomic operations for updating after commit.
Correct ArrayReader::check().
Merge pull request #1 from kohler/updates

Updates