All Questions
Tagged with c++ concurrency
65
questions
5
votes
2
answers
461
views
Automatic RAII wrapper for concurrent access
Probably many people had to work with multithreaded applications with C++ and can understand how messy can be fine-grained locking of objects.
So once in a while I came to idea of implementing some ...
3
votes
0
answers
1k
views
Linked list with hand-over-hand locking
Follow-up to this question: after reading the comments, I decided to redesign my linked list to have a cursor that only contains one node and implement the interface similar to the one of forward_list ...
2
votes
1
answer
251
views
Concurrent access to data with QReadWriteLock
Using Qt, I've got this code in order to protect access to some shared data between threads. I'm pretty sure the idea is correct, but I don't know if RVO and/or RAII could potentially screw the ...
4
votes
0
answers
285
views
An in-memory copy of the GDAX order book for an arbitrary cryptocurrency, updated in real time
GDAX is the cryptocurrency exchange owned and operated by Coinbase.
This code is intended to be the basis for an order-book-strategy trading bot.
I'd love feedback on my use of data structures, my ...
4
votes
1
answer
96
views
ReadWriteSerializer
I am developing a C++ kernel, and I've got the need for manipulating huge data structures before the task-scheduler runs - it means in a non-preemptive environment.
For this, I have developed a read-...
4
votes
1
answer
3k
views
A "zero copy" concurrent queue in C++ that supports exactly two threads; one for pushing and one for popping
One thread is limited to one action (i.e. there is a push-thread and a pop-thread and the push-thread can't pop and vice versa). By "zero copy" I mean no copying of data (mostly C++ structures) will ...
1
vote
0
answers
772
views
A semaphore implmentation with Peterson's N process algorithm
I need feedback on my code for following statement, am I on right path?
Problem statement:
Implement a semaphore class that has a private int and three public methods: init, wait and signal. The ...
5
votes
2
answers
1k
views
Non-polling implementation of std::when_any()
The following — I claim — is a implementation of when_any from the C++ Concurrency TS, except without all the baggage around ...
3
votes
1
answer
2k
views
Work stealing queue
I implemented work stealing queue inspired by Sean Parent's talk on code::dive 2016. Full implementation is here. I am looking to get feedback on improvements to make code more effective and common ...
4
votes
3
answers
6k
views
Matrix multiplication with OpenMP parallel for loop
I tried implementing matrix multiplication with parallel for loop in OpenMP as follows. It runs correctly but I want to make sure if I'm missing anything. How does this determine the number of threads ...
4
votes
1
answer
3k
views
Blocking queue implementation with std::unique_ptr
I implemented, somewhat closely based on this implementation, a blocking queue with emphasis on filling up first. So if one producer and one consumer thread are using the queue, the producing queue ...
8
votes
3
answers
3k
views
The dumbest (futex-based) mutex
After reading Ulrich Drepper's "Futexes are Tricky", I have written the following "dumbest mutex" in C++14 using the Linux futex primitives. This mutex is simpler ...
9
votes
2
answers
1k
views
C++11 Blocking connection pool with auto release
Relatively new to C++. Please help me understand the potential issues with the following blocking object pool.
...
0
votes
1
answer
1k
views
Turn a non-blocking concurrent queue into a blocking concurrent queue
Microsoft Visual Studio offers a non-blocking concurrent queue class, concurrency::concurrent_queue, based on Intel's TBB. I am using this as a base for a blocking ...
2
votes
0
answers
567
views
RCU in C++11 using std::shared_ptr and a little more
Here's some code I wrote to solve a problem at the server I'm working on. Is this valid? I've tested it, and it works, but I would like some opinions on this.
It's basically a ...