[networking.ts] Unclear how execution_context is intended to store services
Billy O'Neal III

Created on 2018-06-23.00:00:00, last changed 2018-07-20.21:06:57.


Date: 2018-07-20.21:06:57

Proposed resolution:

This wording is relative to the N4762.

  1. Modify [async.exec.ctx.globals] p7:

    -7- Throws: service_already_exists if a corresponding service object of type Service::key_type is already present in the set , bad_alloc, or an implementation-defined exception when a resource other than memory could not be obtained. Any exception thrown by the constructor of Service.

Date: 2018-07-20.21:06:57

[ Jonathan provides wording. ]

Date: 2018-07-20.00:00:00

[ 2018-07-20 Priority set to 3 after reflector discussion ]

Date: 2018-06-23.00:00:00
Addresses: networking.ts

make_service and use_service create arbitrary numbers of type Service, a type provided by the user, similar to how locale's use_facet works. As a result there's no amount of storage that could be reserved inside execution_context to avoid allocating memory. However, there's no allocator support here, and make_service is forbidden from throwing allocation related exceptions by N4734 [async.exec.ctx.globals]/7.

If the intent is for execution_context to allocate memory, are user overloads of operator new on type Service intended to be used?

Date User Action Args
2018-07-20 21:06:57adminsetmessages: + msg10031
2018-07-20 21:06:57adminsetmessages: + msg10030
2018-07-20 21:06:57adminsetmessages: + msg10029
2018-06-23 00:00:00admincreate