public ViewManagerImpl() {
viewMap = Maps.newHashMap();
visibleViews = Sets.newHashSet();
viewLoaderLock = new Semaphore(1);
mgrListeners = new ViewManagerListeners();
initializationGate = Condition.ALWAYS_TRUE;
// Acquire viewloader lock immediately, in case the startup threads are (very improbably...)
// scheduled so that the first call to loadView() is made before the call to initialize.
acquireViewLoaderLock();
}