[PATCH] D51103: [Support] Add a way to run a function on a detached thread

Dmitry via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 22 07:28:12 PDT 2018


Dmitry.Kozhevnikov created this revision.
Herald added a subscriber: llvm-commits.

This roughly mimics `std::thread(...).detach()` except it allows to customize the stack size. Required for https://reviews.llvm.org/D50993.

I've decided against reusing the existing `llvm_execute_on_thread` because it's not obvious what to do with the ownership of the passed function/arguments:

1. If we pass possibly owning functions data to `llvm_execute_on_thread`, we'll lose the ability to pass small non-owning non-allocating functions for the joining case (as it's used now). Is it important enough?
2. If we use the non-owning interface in the new use case, we'll force clients to transfer ownership to the spawned thread manually, but similar code would still have to exist inside `llvm_execute_on_thread(_async)` anyway (as we can't just pass the same non-owning pointer to pthreads and Windows implementations, and would be forced to wrap it in some structure, and deal with its ownership.


Repository:
  rL LLVM

https://reviews.llvm.org/D51103

Files:
  include/llvm/Support/Threading.h
  lib/Support/Threading.cpp
  lib/Support/Unix/Threading.inc
  lib/Support/Windows/Threading.inc
  unittests/Support/Threading.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51103.161951.patch
Type: text/x-patch
Size: 8525 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180822/94d14215/attachment.bin>


More information about the llvm-commits mailing list