Fixed race condition would readers could see index update before the data
was available.
Added unit test case for concurrent producers.
Added test case with concurrent consumers.