void ShardingInitializationMongoD::initializeFromShardIdentity( OperationContext* opCtx, const ShardIdentityType& shardIdentity) { invariant(serverGlobalParams.clusterRole == ClusterRole::ShardServer); invariant(opCtx->lockState()->isLocked()); uassertStatusOKWithContext( shardIdentity.validate(), "Invalid shard identity document found when initializing sharding state"); log() << "initializing sharding state with: " << shardIdentity; const auto& configSvrConnStr = shardIdentity.getConfigsvrConnectionString(); auto const shardingState = ShardingState::get(opCtx); auto const shardRegistry = Grid::get(opCtx)->shardRegistry(); stdx::unique_lock<stdx::mutex> ul(_initSynchronizationMutex); if (shardingState->enabled()) { uassert(40371, "", shardingState->shardId() == shardIdentity.getShardName()); uassert(40372, "", shardingState->clusterId() == shardIdentity.getClusterId()); auto prevConfigsvrConnStr = shardRegistry->getConfigServerConnectionString(); uassert(40373, "", prevConfigsvrConnStr.type() == ConnectionString::SET); uassert(40374, "", prevConfigsvrConnStr.getSetName() == configSvrConnStr.getSetName()); return; } auto initializationStatus = shardingState->initializationStatus(); uassert(ErrorCodes::ManualInterventionRequired, str::stream() << "Server's sharding metadata manager failed to initialize and will " "remain in this state until the instance is manually reset" << causedBy(*initializationStatus), !initializationStatus); try { _initFunc(opCtx, shardIdentity, generateDistLockProcessId(opCtx)); shardingState->setInitialized(shardIdentity.getShardName().toString(), shardIdentity.getClusterId()); } catch (const DBException& ex) { shardingState->setInitialized(ex.toStatus()); } }
bool gl4::Engine::initGL() { //init glfw and set start time glfwInit(); _t0 = glfwGetTime(); #ifdef __APPLE__ glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 3 ); glfwOpenWindowHint( GLFW_OPENGL_VERSION_MINOR, 2 ); #else glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 4 ); glfwOpenWindowHint( GLFW_OPENGL_VERSION_MINOR, 3 ); #endif glfwOpenWindowHint( GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwOpenWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwOpenWindowHint( GLFW_WINDOW_NO_RESIZE, GL_TRUE ); // open window glfwOpenWindow( _windowWidth, _windowHeight, 0, 0, 0, 0, 0, 0, GLFW_WINDOW ); // check if window opened correctly if( glfwGetWindowParam( GLFW_OPENED ) ) { glEnable(GL_TEXTURE_2D); // init GLEW with experimental features glewExperimental = GL_TRUE; GLenum err = glewInit(); if (GLEW_OK != err) { std::cerr << "Error " << glewGetErrorString(err) << std::endl; } // glew init with "glewExperimental = GL_TRUE" fires an error GLenum errorID = glGetError(); // fetching versions char buffer [50]; const char *format = "%-12s %i.%i.%i\n"; int GLFWmajor = 0, GLFWminor = 0, GLFWrev = 0; int OpenGLmajor = 0, OpenGLminor = 0, OpenGLrev = 0; glfwGetVersion( &GLFWmajor, &GLFWminor, &GLFWrev ); OpenGLmajor = glfwGetWindowParam(GLFW_OPENGL_VERSION_MAJOR); OpenGLminor = glfwGetWindowParam(GLFW_OPENGL_VERSION_MINOR); // printing versions LOG("%s\n", "Using versions:"); LOG(format, "GLFW:", GLFWmajor, GLFWminor, GLFWrev); LOG("%-12s %s\n", "GLEW:", glewGetString(GLEW_VERSION) ); LOG(format, "OpenGL:", OpenGLmajor, OpenGLminor, OpenGLrev ); LOG("%-12s %s\n", "GLSL:", glGetString(GL_SHADING_LANGUAGE_VERSION) ); std::sprintf (buffer, format, "GL4 Engine:", GL4_ENGINE_VERION_MAJOR, GL4_ENGINE_VERION_MINOR, GL4_ENGINE_VERION_REVISION ); LOG("%s",buffer ); glfwSetWindowTitle( buffer ); // make sure the managers are initialized gl4::ShaderManager::getInstance(); gl4::TextureManager::getInstance(); // init the fixed render target _deferredRender.init(_windowWidth, _windowHeight); // call user defined init if (_initFunc != 0) { _initFunc(); } // set callbacks if (_keyboardCallbackFunc != 0) { glfwSetKeyCallback(_keyboardCallbackFunc); } return true; } // if unable to open window, print error ERRLOG("%s\n", "Could not open window"); return false; }