extracted method "runUnderThreadName"

This commit is contained in:
Alexey Kudravtsev
2017-04-18 14:51:08 +03:00
parent b047a2f353
commit 00d4e8a8ed
2 changed files with 20 additions and 7 deletions
@@ -186,4 +186,15 @@ public class ConcurrencyUtil {
public static void joinAll(@NotNull Thread... threads) throws RuntimeException {
joinAll(Arrays.asList(threads));
}
public static void runUnderThreadName(@NotNull String name, @NotNull Runnable runnable) {
String oldThreadName = Thread.currentThread().getName();
Thread.currentThread().setName(name);
try {
runnable.run();
}
finally {
Thread.currentThread().setName(oldThreadName);
}
}
}
@@ -17,6 +17,7 @@ package com.intellij.util.io;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.ConcurrencyUtil;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
@@ -55,15 +56,16 @@ public abstract class BaseDataReader {
myFinishedFuture = executeOnPooledThread(new Runnable() {
@Override
public void run() {
String oldThreadName = Thread.currentThread().getName();
if (!StringUtil.isEmptyOrSpaces(presentableName)) {
Thread.currentThread().setName("BaseDataReader: " + presentableName);
}
try {
if (StringUtil.isEmptyOrSpaces(presentableName)) {
doRun();
}
finally {
Thread.currentThread().setName(oldThreadName);
else {
ConcurrencyUtil.runUnderThreadName("BaseDataReader: " + presentableName, new Runnable() {
@Override
public void run() {
doRun();
}
});
}
}
});