private void TrySend(EPServiceProvider epService, int numThreads, int numRepeats) { epService.EPAdministrator.Configuration.AddEventType(typeof(SentenceEvent)); EPStatementSPI spi = (EPStatementSPI)epService.EPAdministrator.CreateEPL("select * from SentenceEvent[words]"); Assert.IsTrue(spi.StatementContext.IsStatelessSelect); var runnables = new StatelessRunnable[numThreads]; for (int i = 0; i < runnables.Length; i++) { runnables[i] = new StatelessRunnable(epService, numRepeats); } var threads = new Thread[numThreads]; for (int i = 0; i < runnables.Length; i++) { threads[i] = new Thread(runnables[i].Run); } long start = PerformanceObserver.MilliTime; foreach (Thread t in threads) { t.Start(); } foreach (Thread t in threads) { t.Join(); } long delta = DateTimeHelper.CurrentTimeMillis - start; Log.Info("Delta=" + delta + " for " + numThreads * numRepeats + " events"); foreach (StatelessRunnable r in runnables) { Assert.IsNull(r.Exception); } }
private static void TrySend( RegressionEnvironment env, int numThreads, int numRepeats) { env.CompileDeploy("@Name('s0') select * from SentenceEvent[Words]"); AssertStatelessStmt(env, "s0", true); var runnables = new StatelessRunnable[numThreads]; for (var i = 0; i < runnables.Length; i++) { runnables[i] = new StatelessRunnable(env.Runtime, numRepeats); } var threads = new Thread[numThreads]; for (var i = 0; i < runnables.Length; i++) { threads[i] = new Thread(runnables[i].Run) { Name = typeof(MultithreadStmtStateless).Name }; } var start = PerformanceObserver.MilliTime; foreach (var t in threads) { t.Start(); } foreach (var t in threads) { ThreadJoin(t); } var delta = PerformanceObserver.MilliTime - start; log.Info("Delta=" + delta + " for " + numThreads * numRepeats + " events"); foreach (var r in runnables) { Assert.IsNull(r.Exception); } env.UndeployAll(); }