2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
6 package TransactionalIO.core;
9 import TransactionalIO.benchmarks.benchmark;
10 import TransactionalIO.benchmarks.thread1;
11 import TransactionalIO.interfaces.TransactionalProgram;
17 public class CustomLock implements Runnable{
19 private static ThreadLocal transactioncontainer = new ThreadLocal();
20 private TransactionalProgram ioprogram;
21 private static ThreadLocal/*<TransactionalProgram>*/ program = new ThreadLocal();
22 private ExtendedTransaction transaction;
26 public CustomLock(TransactionalProgram ioprogram) {
27 this.ioprogram = ioprogram;
28 transaction = new ExtendedTransaction();
29 runner = new Thread(this);
33 public static void setTransaction(ExtendedTransaction transaction){
34 transactioncontainer.set(transaction);
37 public static ExtendedTransaction getTransaction(){
38 return (ExtendedTransaction) transactioncontainer.get();
41 public static void setProgram(TransactionalProgram transaction){
42 program.set(transaction);
45 public static TransactionalProgram getProgram(){
46 return (TransactionalProgram) program.get();
51 setTransaction(transaction);
52 setProgram(ioprogram);
53 synchronized(benchmark.lock){
54 benchmark.transacctions.add(transaction);
56 // System.out.println(Thread.currentThread().getName());
58 transaction.prepareCommit();
59 transaction.commitChanges();