diff options
author | Tim Besard <tim.besard@gmail.com> | 2011-10-27 16:51:48 +0200 |
---|---|---|
committer | Tim Besard <tim.besard@gmail.com> | 2011-10-27 16:51:48 +0200 |
commit | 122d27347290ff066635bc3005a332d9574bedb2 (patch) | |
tree | 32dfc9e9dfc73503606e85a5f469470486e841ee /src/Run.h | |
parent | a52db2ab61b21fe7721419747b96e1689c9069a0 (diff) |
Cleaning up the code a bit.
Diffstat (limited to 'src/Run.h')
-rw-r--r-- | src/Run.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/Run.h b/src/Run.h new file mode 100644 index 0000000..810c2e8 --- /dev/null +++ b/src/Run.h @@ -0,0 +1,50 @@ +/******************************************************************************* + * 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 ); + Chain* stream_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 |