gint engine_run(Engine* engine) { MAGIC_ASSERT(engine); /* simulation mode depends on configured number of workers */ if(engine->config->nWorkerThreads > 0) { /* multi threaded, manage the other workers */ engine->executeWindowStart = 0; engine->executeWindowEnd = engine->minTimeJump; return _engine_distributeEvents(engine); } else { /* single threaded, we are the only worker */ engine->executeWindowStart = 0; engine->executeWindowEnd = G_MAXUINT64; return _engine_processEvents(engine); } }
gint engine_run(Engine* engine) { MAGIC_ASSERT(engine); /* dont modify internet during simulation, since its not locked for threads */ internetwork_setReadOnly(engine->internet); /* simulation mode depends on configured number of workers */ if(engine->config->nWorkerThreads > 0) { /* multi threaded, manage the other workers */ engine->executeWindowStart = 0; engine->executeWindowEnd = engine->minTimeJump; return _engine_distributeEvents(engine); } else { /* single threaded, we are the only worker */ engine->executeWindowStart = 0; engine->executeWindowEnd = G_MAXUINT64; return _engine_processEvents(engine); } }