[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