Fangrui Song
2e7ead2539
Parallel: only allow the first TaskGroup to run tasks parallelly
...
Summary:
Concurrent (e.g. nested) llvm::parallel::for_each() may lead to dead
locks. See PR35788 (fixed by rLLD322041) and PR41508 (fixed by D60757).
When parallel_for_each() is about to return, in ~Latch() called by
~TaskGroup(), a thread (in the default executor) may block in
Latch::sync() waiting for Count to become zero. If all threads in the
default executor are blocked, it is a dead lock.
To fix this, force serial execution if the current TaskGroup is not the
first one. For a nested llvm::parallel::for_each(), this parallelizes
the outermost loop and serializes inner loops.
Differential Revision: https://reviews.llvm.org/D61115
llvm-svn: 359182
2019-04-25 11:33:30 +00:00
..
2019-04-24 23:24:53 +00:00
2019-04-16 14:32:43 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-03-20 17:42:00 +00:00
2019-03-28 21:12:28 +00:00
2019-04-19 02:06:06 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-17 15:38:27 +00:00
2019-01-19 08:50:56 +00:00
2019-04-17 15:38:27 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-21 06:17:40 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-08 12:31:12 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-24 20:13:23 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-08 12:31:12 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2018-10-23 21:51:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-15 10:10:11 +00:00
2019-01-22 21:49:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-03-20 23:35:49 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 10:56:40 +00:00
2019-01-19 08:50:56 +00:00
2019-01-25 15:05:33 +00:00
2019-04-12 18:18:08 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2018-09-05 00:08:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2018-05-01 15:54:18 +00:00
2019-04-20 17:10:34 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-25 11:33:30 +00:00
2019-04-24 19:08:43 +00:00
2019-01-19 08:50:56 +00:00
2019-02-27 03:21:50 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-24 02:40:20 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2018-04-02 13:49:35 +00:00
2018-07-26 15:31:41 +00:00
2017-10-26 20:23:11 +00:00
2018-07-30 19:41:25 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2017-12-13 21:30:58 +00:00
2019-01-19 08:50:56 +00:00
2019-04-15 22:07:56 +00:00
2019-02-19 18:18:31 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-23 14:51:27 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-24 17:03:15 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-16 20:36:56 +00:00
2019-03-22 23:11:08 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-04-03 01:08:35 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2018-02-21 22:36:31 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2019-02-23 23:48:47 +00:00
2019-01-19 08:50:56 +00:00
2019-01-19 08:50:56 +00:00
2018-07-31 18:04:58 +00:00
2019-01-19 08:50:56 +00:00
2019-04-25 09:59:55 +00:00
2019-03-27 16:54:12 +00:00