+++ /dev/null
-#include <stdlib.h>
-#include <assert.h>
-#include <stdio.h>
-#include <threads.h>
-#include <stdatomic.h>
-
-#include "model-assert.h"
-
-#include "deque.h"
-
-Deque *q;
-int a;
-int b;
-int c;
-int x;
-
-static void task(void * param) {
- a=steal(q);
- if (a == ABORT) {
- printf("Steal NULL\n");
- } else {
- printf("Steal %d\n", a);
- }
- x=steal(q);
- if (x == ABORT) {
- printf("Steal NULL\n");
- } else {
- printf("Steal %d\n", x);
- }
-}
-
-int user_main(int argc, char **argv)
-{
- /**
- @Begin
- @Entry_point
- @End
- */
- thrd_t t;
- q=create();
- thrd_create(&t, task, 0);
- push(q, 1);
- printf("Push 1\n");
- push(q, 2);
- printf("Push 2\n");
- push(q, 4);
- printf("Push 4\n");
- b=take(q);
- if (b == EMPTY) {
- printf("Take NULL\n");
- } else {
- printf("Take %d\n", b);
- }
- c=take(q);
- if (c == EMPTY) {
- printf("Take NULL\n");
- } else {
- printf("Take %d\n", c);
- }
- thrd_join(t);
-/*
- bool correct=true;
- if (a!=1 && a!=2 && a!=4 && a!= EMPTY)
- correct=false;
- if (b!=1 && b!=2 && b!=4 && b!= EMPTY)
- correct=false;
- if (c!=1 && c!=2 && c!=4 && a!= EMPTY)
- correct=false;
- if (a!=EMPTY && b!=EMPTY && c!=EMPTY && (a+b+c)!=7)
- correct=false;
- if (!correct)
- printf("a=%d b=%d c=%d\n",a,b,c);
- */
- //MODEL_ASSERT(correct);
-
- return 0;
-}
File[] srcTrylock = { new File(homeDir
+ "/benchmark/trylock/trylock.c") };
-// File[] srcDeque = {
-// new File(homeDir + "/benchmark/chase-lev-deque-bugfix/deque.c"),
-// new File(homeDir + "/benchmark/chase-lev-deque-bugfix/main.c"),
-// new File(homeDir + "/benchmark/chase-lev-deque-bugfix/testcase.c"),
-// new File(homeDir + "/benchmark/chase-lev-deque-bugfix/deque.h") };
+ File[] srcDeque = {
+ new File(homeDir + "/benchmark/chase-lev-deque-bugfix/deque.c"),
+ new File(homeDir + "/benchmark/chase-lev-deque-bugfix/main.c"),
+ new File(homeDir + "/benchmark/chase-lev-deque-bugfix/testcase1.c"),
+ new File(homeDir + "/benchmark/chase-lev-deque-bugfix/testcase2.c"),
+ new File(homeDir + "/benchmark/chase-lev-deque-bugfix/deque.h") };
//
File[] srcMCSLock = {
new File(homeDir + "/benchmark/mcs-lock/mcs-lock.cc"),
// File[][] sources = { srcLinuxRWLocks, srcMSQueue, srcRCU,
// srcDeque, srcMCSLock, srcSPSCQueue, srcMPMCQueue, srcHashtable };
- File[][] sources = {srcRCU};
+ File[][] sources = {srcDeque};
// Compile all the benchmarks
for (int i = 0; i < sources.length; i++) {
CodeGenerator gen = new CodeGenerator(sources[i]);