summaryrefslogtreecommitdiff
path: root/Run.h
diff options
context:
space:
mode:
authorDoug Pase <douglas@pase.us>2007-01-22 00:00:00 +0000
committerTim Besard <tim.besard@gmail.com>2011-10-27 16:18:30 +0200
commitfb9ae8907327f93cbeed6ffef914435a4e2ec651 (patch)
tree8432c40e2e646816a83caa83091a105ac08342f6 /Run.h
Initial commit.
Diffstat (limited to 'Run.h')
-rw-r--r--Run.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/Run.h b/Run.h
new file mode 100644
index 0000000..57a83bc
--- /dev/null
+++ b/Run.h
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006 International Business Machines Corporation. *
+ * All rights reserved. This program and the accompanying materials *
+ * are made available under the terms of the Common Public License v1.0 *
+ * which accompanies this distribution, and is available at *
+ * http://www.opensource.org/licenses/cpl1.0.php *
+ * *
+ * Contributors: *
+ * Douglas M. pase - initial API and implementation *
+ *******************************************************************************/
+
+
+#if !defined(Run_h)
+#define Run_h
+
+#include "Thread.h"
+
+#include "Lock.h"
+#include "Chain.h"
+#include "Types.h"
+#include "Experiment.h"
+#include "SpinBarrier.h"
+
+class Run: public Thread {
+public:
+ Run();
+ ~Run();
+ int run();
+ void set( Experiment &e, SpinBarrier* sbp );
+
+ static int64 ops_per_chain() { return _ops_per_chain; }
+ static double seconds() { return _seconds; }
+
+private:
+ Experiment* exp; // experiment data
+ SpinBarrier* bp; // spin barrier used by all threads
+
+ void mem_check( Chain *m );
+ Chain* random_mem_init( Chain *m );
+ Chain* forward_mem_init( Chain *m );
+ Chain* reverse_mem_init( Chain *m );
+
+ static Lock global_mutex; // global lock
+ static int64 _ops_per_chain; // total number of operations per chain
+ static double _seconds; // total number of seconds
+};
+
+
+#endif