projects
/
model-checker-benchmarks.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bench.sh: only print git information when we're in git
[model-checker-benchmarks.git]
/
spsc-queue
/
spsc-queue.cc
diff --git
a/spsc-queue/spsc-queue.cc
b/spsc-queue/spsc-queue.cc
index a81a1d0ce357e66c4f0b86bec5f6e6ca98b5ec66..f8528a862acd8f5097ebb3d781e73e8eb7955864 100644
(file)
--- a/
spsc-queue/spsc-queue.cc
+++ b/
spsc-queue/spsc-queue.cc
@@
-1,24
+1,34
@@
+#include <threads.h>
+
#include "queue.h"
#include "queue.h"
-struct spsc_queue_test : rl::test_suite<spsc_queue_test, 2>
-{
- spsc_queue<int> q;
+spsc_queue<int> *q;
void thread(unsigned thread_index)
{
if (0 == thread_index)
{
void thread(unsigned thread_index)
{
if (0 == thread_index)
{
- q
.
enqueue(11);
+ q
->
enqueue(11);
}
else
{
}
else
{
- int d = q
.
dequeue();
+ int d = q
->
dequeue();
RL_ASSERT(11 == d);
}
}
RL_ASSERT(11 == d);
}
}
-};
-int
main(
)
+int
user_main(int argc, char **argv
)
{
{
- rl::simulate<spsc_queue_test>();
+ thrd_t A, B;
+
+ q = new spsc_queue<int>();
+
+ thrd_create(&A, (thrd_start_t)&thread, (void *)0);
+ thrd_create(&B, (thrd_start_t)&thread, (void *)1);
+ thrd_join(A);
+ thrd_join(B);
+
+ delete q;
+
+ return 0;
}
}