-
Notifications
You must be signed in to change notification settings - Fork 1
P0260 R17 C++ Concurrent Queues #99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
P0260R3 Concurrent Communication Queues Champion: Lawrence Crowl Minute Taker: Ronan Keryell Start Overview: 16:37 Start Discussion: 16:45 Maybe don’t constraint success to be 0. Start Polling: 16:48 POLL: Split into two papers:
Attendance: 14 That has consensus. End: 17:07 |
P0260R4 C++ Concurrent Queues (Lawrence Crowl, Chris Mysen) |
P1958R0 Concurrent Buffer Queue: Design Review Chair: Bryce Adelstein Lelbach Champion: Lawrence Crowl Minute Taker: Conor Hoekstra Start Review: 2020-02-12 08:45 Examples: Add to paper. Implementation experience: Yes, in paper. Usage experience: Yes, in paper. Prior art: Add to paper. Wording: Yes.
What are the requirements on the value type? Answer:
Exceptions during
Does copy elision solve the Can we require that if it throws in POLL: We are okay with
Attendance: 18 # of Authors: 1 Author Position: SF That has no consensus. When does
The alternative to a maybe-consuming POLL: We are okay with concurrent queue's
Attendance: 18 # of Authors: 1 Author Position: SF That has no consensus. SA: I don't want to loose the try functionality, but I don't like the semantics of this API. I'd be okay with an always consuming interface. Potential solutions for
POLL: Acceptable potential solutions for
Attendance: 17 # of Authors: 1 Author Position: 0, 1 Prior art for 2: Intel TBB Resume After Break: 2020-02-12 10:48 Minute Taker: Ben Craig Precedent for status APIs in the standard library? Why have just
Are the status mutually exclusive? Answer: No; you could be closed and empty, for example. Perhaps only allow
POLL: We are okay with standard library concurrent queues having
Attendance: 23 # of Authors: 1 Author Position: SF That has weeeeaaak consensus.
POLL: We are okay with the status quo states returned by NO OBJECTION TO UNANIMOUS CONSENT. Attendance: 23 Should we add timed try wait interfaces for consistency? Did SG1 consider this? Answer: SG1 did talk about this. They didn't want to deal with it in version 1. Are the non-blocking/blocking interfaces consistent with the standard library? TS questions:
What happens if the distance between the iterators in the range constructor is greater than the maximum number of elements specified?
Should we specify whether or this requires (instead of just supports) a fixed size queue implementation (with an allocation ahead of time)? Answer: No, we should probably seek to preserve implementation freedom here and allow implementations to do either.
POLL: Require
Attendance: 24 # of Authors: 1 Author Position: WF That has unanimous consent. POLL: Require
Attendance: 24 # of Authors: 1 Author Position: N That has unanimous consent. Post poll, we discovered new information - we can't actually make POLL: Require NO OBJECTION TO UNANIMOUS CONSENT. Attendance: 24 # of Authors: 1 That has unanimous consent. Should concurrent queues support allocators? We've required all allocation to happen up front, which eliminates some concurrency concerns around adding allocator support. But, because of container allocator-awareness, the allocator has to be passed through to the elements, and thus concurrent calls to your allocator may occur. POLL: In the Technical Specification,
Attendance: 24 # of Authors: 1 Author Position: A POLL: In the Technical Specification, concurrent queues should have a
Attendance: 22 # of Authors: 1 Author Position: N That has no consensus. End: 11:55 CONSENSUS: Bring a revision of P1958R0 (Concurrent Buffer Queue), with the guidance below, to LEWGI for further design review.
|
P0260R5 C++ Concurrent Queues (Lawrence Crowl, Chris Mysen, Detlef Vollmann) |
SG1 saw the updates in Wroclaw and had no issues, except the wording of the sequential-consistency guarantee needs some wordsmithing (the intent is clear). |
2024-11-22 Library Evolution Wroclaw MeetingP0260R11: C++ Concurrent Queues 2024-11-22 Library Evolution Wroclaw Meeting Minutes Champion: Datlef Vollmann SummaryPOLL: Modify “T pop()” into “std::optional pop()”, so that closed error is delivered as a benign end-of-sequence value (dropping the error code version).
Attendance: 23 (IP) + 4 (R) POLL: Make “async_pop()” a sender which it’s value channel returns optional.
Attendance: 23 (IP) + 4 (R) SA: It should have 2 value channels, one of which is nullary and one of which is unary. Next StepsThe paper requires more discussion on the selected API for all the use cases: sync non-blocking, sync blocking, async. We will follow-up on this topic in a telecon, set for 2024 Dec 10th. |
P0260R12 C++ Concurrent Queues (Detlef Vollmann, Lawrence Crowl, Chris Mysen, Gor Nishanov) |
P0260R13 C++ Concurrent Queues (Detlef Vollmann, Lawrence Crowl, Chris Mysen, Gor Nishanov) |
P0260R14 C++ Concurrent Queues (Detlef Vollmann, Lawrence Crowl, Chris Mysen, Gor Nishanov) |
SG1 in Hagenberg: Poll: in review of P0260R14:
|
2025-02-14 Library Evolution Hagenberg MeetingP0260R15: C++ Concurrent Queues (D0260R15 was seen) 2025-02-14 Library Evolution Hagenberg Minutes Champion: Detlef Volmann SummaryPOLL: Change the return type of try_pop() from optional + outparam to expected<> (reverting our earlier decision, considering new input).
Attendance: 21 (IP) + 5 (R) A: I like error code-based interfaces and I find that when I use expected I end up with more verbose code than I’d like. I get that some people don’t like output parameters but I really like the error code kind of API. POLL: We want to solve the blocking/non_blocking concurrent and the async interactions with a different interface shape.
Attendance: 20 (IP) + 5 (R) Paper forwarding checklist
POLL: With the changes above (try_pop return type and removal of obsolete exception helpers) Forward P0260R15 To LWG for C++26.
Attendance: 21 (IP) + 7 (R) SA: I do not like the scheduling behavior and this should be two classes. Next StepsApply the changes above and forward P0260R16 to LWG for C++26. |
P0260R15 C++ Concurrent Queues (Detlef Vollmann, Lawrence Crowl, Chris Mysen, Gor Nishanov) |
P0260R16 C++ Concurrent Queues (Detlef Vollmann, Lawrence Crowl, Chris Mysen, Gor Nishanov) |
P0260R17 C++ Concurrent Queues (Detlef Vollmann, Lawrence Crowl, Chris Mysen, Gor Nishanov) |
P0260R3 C++ Concurrent Queues (Lawrence Crowl, Chris Mysen)
The text was updated successfully, but these errors were encountered: