#include <cstdlib>
#include <iostream>
#include <signal.h>
#include <pthread.h>
#include <api/api.hpp>
#include <common/platform.hpp>
#include <common/locks.hpp>
#include "bmconfig.hpp"
Go to the source code of this file.
Support a few lightweight barriers
void catch_SIGALRM |
( |
int |
| ) |
|
Print benchmark configuration output
int main |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Main routine: parse args, set up the TM system, prep the benchmark, run the experiments, verify results, print results, and shut down the system
Run some nops between transactions, to simulate some time being spent on computation
void parseargs |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Parse command line arguments
pthread wrapper for running the experiments
NB: noinline prevents this from getting inlined into main (and prevents run from being inlined there as well. This eliminates an _ITM_initializeProcess ordering problem if there's a transaction lexically scoped inside of main.