Пример #1
0
/*//----------------------------------------------------------------------
// SimpleThread
//     Loop 5 times, yielding the CPU to another ready thread 
//    each iteration.
//
//    "which" is simply a number identifying the thread, for debugging
//    purposes.
//----------------------------------------------------------------------
*/
void
SimpleThread(int which)
{
    int num;
    
    for (num = 0; num < 5; num++) {
    if(which == 0)
    {
        Write(" ***Thread 0 loops*** ", 22, 1);
		NewLine();
		PrintTab();
		Print(" ***Thread P%d loops*** ",24,0,-1);
		NewLine();
    }
    else
    {    
        Write(" ***Thread 1 loops*** ", 22, 1);
		NewLine();
		PrintTab();
		Print(" ***Thread P%d loops*** ",24,1,-1);
		NewLine();
    }
    
        Yield();
    }
}
Пример #2
0
void
main()
{
    Write(" Entering Main Thread ", 22,1);
	NewLine();
	Print(" P Entering Main Thread ", 24,1,-1);
	NewLine();
	Fork(SimpleThread, 1);
    SimpleThread(0);
    
    Write(" Exiting the main thread ",25,1);
	NewLine();    
	PrintTab();
	Print(" P Exiting the main thread ",27,1,-1);
    NewLine();
}
Пример #3
0
	int LuaTableSave::Save()
	{
		ACCHECK(lua_istable(m_pLua, -1));
		m_objOut << "{";
		bool isEmpty = true;
		lua_pushnil(m_pLua);
		m_nLayer++;
		while(lua_next(m_pLua, -2) != 0)
		{
			isEmpty = false;
			PrintTab();

			//存储KEY
			if(lua_type(m_pLua,-2) == LUA_TNUMBER)
				m_objOut << "[" << lua_tonumber(m_pLua, -2) << "]" << " = ";
			else if(lua_type(m_pLua, -2) == LUA_TSTRING)
				m_objOut << lua_tostring(m_pLua, -2) << " = ";
			else
			{
				std::cout << "Unknown key type" << std::endl;
				ACCHECK(false);
			}

			//存储VALUE
			if(lua_type(m_pLua, -1) == LUA_TNUMBER)
				m_objOut << lua_tonumber(m_pLua, -1) << ",";
			else if(lua_type(m_pLua, -1) == LUA_TSTRING)
				m_objOut << "\"" << lua_tostring(m_pLua, -1) << "\"" << ",";
			else if(lua_type(m_pLua, -1) == LUA_TBOOLEAN)
			{
				int bval = lua_toboolean(m_pLua, -1);
				std::string strVal = bval ? "true" : "false";
				m_objOut << strVal << ",";
			}
			else if(lua_type(m_pLua, -1) == LUA_TTABLE)
			{
				Save();
			}
			else
			{
				std::cout << "Unknown value type" << std::endl;
				ACCHECK(false);
			}

			lua_pop(m_pLua, 1);
		}

		m_nLayer--;

		//层数未达到最大且table不为空,table结束处换行
		if((m_nLayer + 1 <= m_nMaxLayer) && (!isEmpty))
			PrintTab();

		m_objOut << "}";

		//不是第一层
		if(m_nLayer)
			m_objOut << ",";

		return 0;
	}
Пример #4
0
void ChartGridRelation()
{
    char sz[cchSzDef];
    int i, j, k, tot = cObjOpt, temp, m;
    char ignoreT[objMax];

    PrintHeader();     /* Display chart info */

#ifdef INTERPRET
    if (us.fInterpret && !us.fGridConfig) {
        InterpretGridRelation();
        return;
    }
#endif

    if (us.nRel == rcTransit) {
        for (m = 0; m <= cObjOpt; m++)
            ignoreT[m] = ignore2[m];
    } else if (us.nRel == rcProgress) {
        for (m = 0; m <= cObjOpt; m++)
            ignoreT[m] = ignore3[m];
    } else {
        for (m = 0; m<= cObjOpt; m++)
            ignoreT[m] = ignore[m];
    }

    PrintSz(" 2>");
    for (temp = 0, i = 0; i <= cObjOpt; i++) if (!ignoreT[i] && i != us.objCenter) {
            PrintCh(chV);
            AnsiColor(kObjA[i]);
            sprintf(sz, "%c%c%c", chObj3(i));
            PrintSz(sz);
            AnsiColor(kDefault);
            temp++;
        }
    PrintSz("\n1  ");
    for (i = 0; i <= tot; i++) if (!ignoreT[i] && i != us.objCenter) {
            PrintCh(chV);
            AnsiColor(kSignA(SFromZ(cp2.obj[i])));
            sprintf(sz, "%2d%c", (int)cp2.obj[i] % 30, chDeg0);
            PrintSz(sz);
            AnsiColor(kDefault);
        }
    PrintSz("\nV  ");
    for (i = 0; i <= tot; i++) if (!ignoreT[i] && i != us.objCenter) {
            PrintCh(chV);
            temp = SFromZ(cp2.obj[i]);
            AnsiColor(kSignA(temp));
            sprintf(sz, "%c%c%c", chSig3(temp));
            PrintSz(sz);
            AnsiColor(kDefault);
        }
    PrintL();
    for (j = 0; j <= cObjOpt; j++) if (!ignore[j] && j != us.objCenter)
            for (k = 1; k <= 4; k++) {
                if (k < 2)
                    PrintTab(chH, 3);
                else if (k == 2) {
                    AnsiColor(kObjA[j]);
                    sprintf(sz, "%c%c%c", chObj3(j));
                    PrintSz(sz);
                } else {
                    temp = SFromZ(cp1.obj[j]);
                    AnsiColor(kSignA(temp));
                    if (k == 3)
                        sprintf(sz, "%2d%c", (int)cp1.obj[j] - (temp-1)*30, chDeg0);
                    else
                        sprintf(sz, "%c%c%c", chSig3(temp));
                    PrintSz(sz);
                }
                if (k > 1)
                    AnsiColor(kDefault);
                for (i = 0; i <= tot; i++) if (!ignoreT[i] && i != us.objCenter) {
                        PrintCh((char)(k < 2 ? chC : chV));
                        temp = grid->n[i][j];
                        if (k > 1) {
                            if (i == j)
                                AnsiColor(kReverse);
                            AnsiColor(us.fGridConfig ? kSignA(temp) :
                                      kAspA[temp]);
                        }
                        if (k < 2)
                            PrintTab(chH, 3);
                        else if (k == 2) {
                            if (us.fGridConfig)
                                sprintf(sz, "%c%c%c", chSig3(temp));
                            else
                                sprintf(sz, "%s", temp ? szAspectAbbrev[temp] : "   ");
                            PrintSz(sz);
                        } else if (k == 3) {
                            if (us.fGridConfig) {
                                sprintf(sz, "%2d%c", grid->v[i][j]/3600, chDeg0);
                                PrintSz(sz);
                            } else if (grid->n[i][j]) {
                                if (grid->v[i][j] < 360000)
                                    sprintf(sz, "%c%2d", us.fAppSep ?
                                            (grid->v[i][j] < 0 ? 'a' : 's') :
                                                    (grid->v[i][j] < 0 ? '-' : '+'), abs(grid->v[i][j])/3600);
                                else
                                    sprintf(sz, "%3d", abs(temp)/60);
                                PrintSz(sz);
                            } else
                                PrintSz("   ");
                        } else {
                            if (grid->n[i][j]) {
                                sprintf(sz, "%02d'", (abs(grid->v[i][j])%3600)/60);
                                PrintSz(sz);
                            } else
                                PrintSz("   ");
                        }
                        AnsiColor(kDefault);
                    }
                PrintL();
            }
}