inline static void Execute(void* Arg) { ThreadState lobject_lock; long i, rnum; volatile long j; long id = (long) Arg; setThreadId(id); _thread_pin(id); simSRandom(id + 1L); threadStateInit(&lobject_lock, &object_lock, (int)id); if (id == N_THREADS - 1) d1 = getTimeMillis(); // Synchronization point int rc = pthread_barrier_wait(&barr); if (rc != 0 && rc != PTHREAD_BARRIER_SERIAL_THREAD) { printf("Could not wait on barrier\n"); exit(-1); } start_cpu_counters(id); for (i = 0; i < RUNS; i++) { // perform a fetchAndMultiply operation applyOp(&object_lock, &lobject_lock, fetchAndMultiply, (ArgVal) id, id); rnum = simRandomRange(1, MAX_WORK); for (j = 0; j < rnum; j++) ; } stop_cpu_counters(id); }
inline static void Execute(void* Arg) { long i; long rnum; long id = (long) Arg; volatile int j; setThreadId(id); _thread_pin(id); simSRandom(id + 1); init_pool(&pool_node, sizeof(ListNode)); if (id == N_THREADS - 1) d1 = getTimeMillis(); // Synchronization point int rc = pthread_barrier_wait(&barr); if (rc != 0 && rc != PTHREAD_BARRIER_SERIAL_THREAD) { printf("Could not wait on barrier\n"); exit(-1); } start_cpu_counters(id); for (i = 0; i < RUNS; i++) { push((Object)1, id); rnum = simRandomRange(1, MAX_WORK); for (j = 0; j < rnum; j++) ; pop(id); rnum = simRandomRange(1, MAX_WORK); for (j = 0; j < rnum; j++) ; } stop_cpu_counters(id); }
inline void Execute(void* Arg) { long i, rnum; volatile int j; long id = (long) Arg; HQueueThreadState lqueue_struct; setThreadId(id); _thread_pin(id); simSRandom(id + 1); hqueueThreadStateInit(&queue_object, &lqueue_struct, (int)id); if (id == N_THREADS - 1) d1 = getTimeMillis(); // Synchronization point int rc = pthread_barrier_wait(&barr); if (rc != 0 && rc != PTHREAD_BARRIER_SERIAL_THREAD) { printf("Could not wait on barrier\n"); exit(-1); } start_cpu_counters(id); for (i = 0; i < RUNS; i++) { // perform an enqueue operation applyEnqueue(&queue_object, &lqueue_struct, (ArgVal) id, id); rnum = simRandomRange(1, MAX_WORK); for (j = 0; j < rnum; j++) ; // perform a dequeue operation applyDequeue(&queue_object, &lqueue_struct, id); rnum = simRandomRange(1, MAX_WORK); for (j = 0; j < rnum; j++) ; } stop_cpu_counters(id); }
//----------------------------------------------------------------------------------------- // Constructors //----------------------------------------------------------------------------------------- ClientThread::ClientThread(SocketClient* client, int threadId, float interval) { setThreadId(threadId); socketClient = client; flag = false; timer = new FdTimer(getThreadId(), interval); }
//----------------------------------------------------------------------------------------- // Constructors //----------------------------------------------------------------------------------------- ServerThread::ServerThread(SocketServer* server, int id) { setThreadId( SERVER_THREAD_ID ); socketServer = server; }