Exemplo n.º 1
0
static bool InitThread()
{
	if (s_ThreadInitialized == OS_INVALID_TLS_INDEX)
	{
		assert(0 && "InitThread(): Process hasn't been initalised.");
		return false;
	}

	// already initialized?
	if (OS_GetTLSValue(s_ThreadInitialized) != 0)
		return true;
	
	// initialize per-thread data
	InitializeGlobalPools();
	
	if (!InitializeGlobalParseContext())
		return false;
	
	if (!OS_SetTLSValue(s_ThreadInitialized, (void *)1))
	{
		assert(0 && "InitThread(): Unable to set init flag.");
		return false;
	}
	return true;
}
Exemplo n.º 2
0
bool InitThread()
{
	//
    // This function is re-entrant
	//
    if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) {
		assert(0 && "InitThread(): Process hasn't been initalised.");
        return false;
	}

    if (OS_GetTLSValue(ThreadInitializeIndex) != 0)
        return true;

	InitializeGlobalPools();

	if (!InitializeGlobalParseContext())
        return false;

    if (!OS_SetTLSValue(ThreadInitializeIndex, (void *)1)) {
		assert(0 && "InitThread(): Unable to set init flag.");
        return false;
	}

    return true;
}