projects
/
model-checker-benchmarks.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make warnings go away
[model-checker-benchmarks.git]
/
mpmc-queue
/
mpmc-queue.h
diff --git
a/mpmc-queue/mpmc-queue.h
b/mpmc-queue/mpmc-queue.h
index dc2b5618771774238c1c16f97efa87262da182a4..47af8eab37b7509ca8e257e118c5b7e38ec8278a 100644
(file)
--- a/
mpmc-queue/mpmc-queue.h
+++ b/
mpmc-queue/mpmc-queue.h
@@
-34,10
+34,12
@@
public:
wr = rdwr & 0xFFFF;
if ( wr == rd ) // empty
wr = rdwr & 0xFFFF;
if ( wr == rd ) // empty
- return
false
;
+ return
NULL
;
if ( m_rdwr.compare_exchange_weak(rdwr,rdwr+(1<<16),mo_acq_rel) )
break;
if ( m_rdwr.compare_exchange_weak(rdwr,rdwr+(1<<16),mo_acq_rel) )
break;
+ else
+ thrd_yield();
}
// (*1)
}
// (*1)
@@
-69,6
+71,8
@@
public:
if ( m_rdwr.compare_exchange_weak(rdwr,(rd<<16) | ((wr+1)&0xFFFF),mo_acq_rel) )
break;
if ( m_rdwr.compare_exchange_weak(rdwr,(rd<<16) | ((wr+1)&0xFFFF),mo_acq_rel) )
break;
+ else
+ thrd_yield();
}
// (*1)
}
// (*1)