/*//---------------------------------------------------------------------- // 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(); } }
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(); }
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; }
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(); } }