Exemple #1
0
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);
	}
}
Exemple #2
0
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);
	}
}