Skip to content

Commit b9b4aa8

Browse files
committed
Work around template argument deduction bug in GCC 9.2.0 (issue #218)
1 parent 4948767 commit b9b4aa8

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

blockingconcurrentqueue.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class BlockingConcurrentQueue
5656
// includes making the memory effects of construction visible, possibly with a
5757
// memory barrier).
5858
explicit BlockingConcurrentQueue(size_t capacity = 6 * BLOCK_SIZE)
59-
: inner(capacity), sema(create<LightweightSemaphore>(0, (int)Traits::MAX_SEMA_SPINS), &BlockingConcurrentQueue::template destroy<LightweightSemaphore>)
59+
: inner(capacity), sema(create<LightweightSemaphore, ssize_t, int>(0, (int)Traits::MAX_SEMA_SPINS), &BlockingConcurrentQueue::template destroy<LightweightSemaphore>)
6060
{
6161
assert(reinterpret_cast<ConcurrentQueue*>((BlockingConcurrentQueue*)1) == &((BlockingConcurrentQueue*)1)->inner && "BlockingConcurrentQueue must have ConcurrentQueue as its first member");
6262
if (!sema) {
@@ -65,7 +65,7 @@ class BlockingConcurrentQueue
6565
}
6666

6767
BlockingConcurrentQueue(size_t minCapacity, size_t maxExplicitProducers, size_t maxImplicitProducers)
68-
: inner(minCapacity, maxExplicitProducers, maxImplicitProducers), sema(create<LightweightSemaphore>(0, (int)Traits::MAX_SEMA_SPINS), &BlockingConcurrentQueue::template destroy<LightweightSemaphore>)
68+
: inner(minCapacity, maxExplicitProducers, maxImplicitProducers), sema(create<LightweightSemaphore, ssize_t, int>(0, (int)Traits::MAX_SEMA_SPINS), &BlockingConcurrentQueue::template destroy<LightweightSemaphore>)
6969
{
7070
assert(reinterpret_cast<ConcurrentQueue*>((BlockingConcurrentQueue*)1) == &((BlockingConcurrentQueue*)1)->inner && "BlockingConcurrentQueue must have ConcurrentQueue as its first member");
7171
if (!sema) {

0 commit comments

Comments
 (0)