[SERVER-61060] Should we make our Future<T> type awaitable, so that it supports usage with C++ coroutine keywords/primitives? Created: 27/Oct/21  Updated: 31/Jan/22  Resolved: 31/Jan/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Matthew Saltz (Inactive) Assignee: Matthew Saltz (Inactive)
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Sprint: Service Arch 2022-2-07
Participants:

 Description   
  • Whether or not we import an existing library for supporting types, should we make our Future<T> type awaitable, so that it supports usage with C++ coroutine keywords/primitives?
  • If so, how should users think about when to use Future<T> vs. e.g. a lazy task type or a type from another library?
  • If not, should we pre-emptively add coroutine-supporting APIs to things with Future-based APIs alongside the existing APIs? Or should we replace them? 
  • For example, TaskExecutor now has Future-based APIs as well as continuation-passing style APIs. Would we add a third to support “task” (e.g.) types?

Generated at Thu Feb 08 05:51:26 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.