This hasn't been an issue so far since cores are created at startup. But in the lots of cores case (see
SOLR-1293) the probability that more than one thread will attempt to create a core of the same name is vastly greater. We need to block other threads from creating a core if the core is already being created in a different thread.
Once the core is created, the blocked thread should pick up the newly-created core rather than create it again.