[libcxx-commits] [PATCH] D46140: [coroutines] Add std::experimental::task<T> type

Lewis Baker via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Mar 29 17:03:26 PDT 2019


lewissbaker updated this revision to Diff 192944.
lewissbaker marked 6 inline comments as done.
lewissbaker added a comment.

This updated diff should address most of @CaseyCarter's review comments.

For detailed changelog you can find individual changes here https://github.com/lewissbaker/libcxx/commits/coro_task

There are a few outstanding issues that still need some clarification on how to proceed:

- Should the task tests be taking a dependency on <experimental/memory_resource>?
- How should I implement a precondition check for `__aligned_allocation_size` when it is declared constexpr?
- I've not yet implemented support for `task<cv-void>`. Is this something we should support?
- I've not yet handling allocators with fancy pointer types. If we are to support them is there a standard way to convert a fancy pointer to a `void*` to return from `promise_type::operator new()`? Does it even make sense to support them if the compiler is potentially going to be storing raw pointers to things inside the coroutine frame?


Repository:
  rCXX libc++

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D46140/new/

https://reviews.llvm.org/D46140

Files:
  include/CMakeLists.txt
  include/experimental/__memory
  include/experimental/coroutine
  include/experimental/memory_resource
  include/experimental/task
  include/module.modulemap
  test/std/experimental/task/awaitable_traits.hpp
  test/std/experimental/task/counted.hpp
  test/std/experimental/task/lit.local.cfg
  test/std/experimental/task/manual_reset_event.hpp
  test/std/experimental/task/sync_wait.hpp
  test/std/experimental/task/task.basic/task_custom_allocator.pass.cpp
  test/std/experimental/task/task.basic/task_of_value.pass.cpp
  test/std/experimental/task/task.basic/task_of_void.pass.cpp
  test/std/experimental/task/task.lifetime/task_parameter_lifetime.pass.cpp
  test/std/experimental/task/task.lifetime/task_return_value_lifetime.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46140.192944.patch
Type: text/x-patch
Size: 52972 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190330/de9ce97f/attachment-0001.bin>


More information about the libcxx-commits mailing list