This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.

### 3496. What does "uniquely associated" mean for `basic_syncbuf::emit()`?

Section: 31.11.2.4 [syncstream.syncbuf.members] Status: New Submitter: Jonathan Wakely Opened: 2020-11-10 Last modified: 2020-11-21

Priority: 3

View other active issues in [syncstream.syncbuf.members].

View all other issues in [syncstream.syncbuf.members].

View all issues with New status.

Discussion:

31.11.2.4 [syncstream.syncbuf.members] p5 says "May call member functions of `wrapped` while holding a lock uniquely associated with `wrapped`."

It's unclear what "uniquely associated" means. Is it required to be a one-to-one mapping, so that every `streambuf*` that is wrapped is associated with a different lock?

I believe the intention is only that for a given `streambuf*` every `syncbuf` that wraps it uses the same lock. The intention was that it's a valid implementation for the same lock to be used for more than one `streambuf*` (e.g. using a table of `N` locks which are indexed by a hash of the `streambuf* value)`. The current wording can be interpreted to forbid that implementation.

[2020-11-21; Reflector prioritization]

Set priority to 3 during reflector discussions.

Proposed resolution: