From 9bc4e4846734fdec7c0ad57b3e09d18bbe0c00a4 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 6 Nov 2015 18:01:58 +0300 Subject: [PATCH] thread leaks in tests --- .../intellij/psi/PsiConcurrencyStressTest.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/psi/PsiConcurrencyStressTest.java b/java/java-tests/testSrc/com/intellij/psi/PsiConcurrencyStressTest.java index 32fed469fecd..5e2f89a10f3c 100644 --- a/java/java-tests/testSrc/com/intellij/psi/PsiConcurrencyStressTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/PsiConcurrencyStressTest.java @@ -38,8 +38,11 @@ import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.SkipSlowTestLocally; import com.intellij.testFramework.Timings; import com.intellij.util.IncorrectOperationException; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; +import java.util.Collections; +import java.util.List; import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -75,7 +78,7 @@ public class PsiConcurrencyStressTest extends DaemonAnalyzerTestCase { final CountDownLatch reads = new CountDownLatch(numOfThreads); final Random random = new Random(); - for (int i = 0; i < numOfThreads; i++) { + List threads = ContainerUtil.map(Collections.nCopies(numOfThreads, ""), i -> new Thread(() -> { for (int i1 = 0; i1 < readIterations; i1++) { if (myPsiManager == null) return; @@ -86,8 +89,8 @@ public class PsiConcurrencyStressTest extends DaemonAnalyzerTestCase { } reads.countDown(); - }, "stress thread" + i).start(); - } + }, "stress thread" + i)); + threads.forEach(Thread::start); final Document document = documentManager.getDocument(myFile); @@ -107,6 +110,15 @@ public class PsiConcurrencyStressTest extends DaemonAnalyzerTestCase { } assertTrue("Timed out", reads.await(5, TimeUnit.MINUTES)); + ContainerUtil.process(threads, thread -> { + try { + thread.join(); + return true; + } + catch (InterruptedException e) { + throw new RuntimeException(e); + } + }); } private static void mark(final String s) { -- 2.32.0