public void run() {
        try {
        	//m_out.println("Waiting to start [" + Thread.currentThread().getName() + "]");
			m_startSignal.await();
        	//m_out.println("starting [" + Thread.currentThread().getName() + "]");
		
			for(int i = 0; i < m_iterations; i++) {
				//Simulate events from the InTrace server agent
				int simulatedRequestId = TestMultiThreadedRequestSeparator.atomicRequestCount.incrementAndGet();
				List<ITraceEvent> events = TestUtil.createEvents(EVENTS_FROM_MULTIPLE_REQUESTS_PRISTINE);
				for(ITraceEvent e : events) {
					//Debug info
					int eventSeq = 	TestMultiThreadedRequestSeparator.atomicEventCount.incrementAndGet();
					e.setThreadId(""+simulatedRequestId);
					String strSimulatedThreadId = Thread.currentThread().getName()+"~"+simulatedRequestId+"!"+eventSeq;
					e.setValue(strSimulatedThreadId);
					e.setSourceLineNumber(eventSeq);
					m_requestSeparator.add(e);
				}
			}
	        m_doneSignal.countDown();
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IntraceException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
   	
    }