Skip to content

Commit

Permalink
Switch to ProcessHandle for getting the pid.
Browse files Browse the repository at this point in the history
Uses new Java API instead of a native method.

PiperOrigin-RevId: 409973910
  • Loading branch information
justinhorvitz authored and copybara-github committed Nov 15, 2021
1 parent 74e8b82 commit 47696c9
Show file tree
Hide file tree
Showing 10 changed files with 8 additions and 20 deletions.
1 change: 0 additions & 1 deletion src/main/java/com/google/devtools/build/lib/analysis/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -874,7 +874,6 @@ java_library(
":blaze_version_info",
"//src/main/java/com/google/devtools/build/lib/buildeventstream",
"//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto",
"//src/main/java/com/google/devtools/build/lib/util:process",
"//third_party:guava",
],
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId;
import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent;
import com.google.devtools.build.lib.buildeventstream.ProgressEvent;
import com.google.devtools.build.lib.util.ProcessUtils;
import java.util.Collection;

/** This event raised to indicate that no build will be happening for the given command. */
public final class NoBuildEvent implements BuildEvent {
Expand Down Expand Up @@ -55,7 +53,7 @@ public NoBuildEvent() {
}

@Override
public Collection<BuildEventId> getChildrenEvents() {
public ImmutableList<BuildEventId> getChildrenEvents() {
if (separateFinishedEvent) {
return ImmutableList.of(
ProgressEvent.INITIAL_PROGRESS_UPDATE, BuildEventIdUtil.buildFinished());
Expand Down Expand Up @@ -83,7 +81,7 @@ public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventContext convert
if (id != null) {
started.setUuid(id);
}
started.setServerPid(ProcessUtils.getpid());
started.setServerPid(ProcessHandle.current().pid());
return GenericBuildEvent.protoChaining(this).setStarted(started.build()).build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import com.google.devtools.build.lib.buildtool.BuildRequest;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.runtime.CommandLineEvent;
import com.google.devtools.build.lib.util.ProcessUtils;
import com.google.protobuf.util.Timestamps;
import java.util.Collection;

Expand Down Expand Up @@ -107,7 +106,7 @@ public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventContext convert
.setBuildToolVersion(BlazeVersionInfo.instance().getVersion())
.setOptionsDescription(request.getOptionsDescription())
.setCommand(request.getCommandName())
.setServerPid(ProcessUtils.getpid());
.setServerPid(ProcessHandle.current().pid());
if (pwd != null) {
started.setWorkingDirectory(pwd);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/util:filetype",
"//src/main/java/com/google/devtools/build/lib/util:interrupted_failure_details",
"//src/main/java/com/google/devtools/build/lib/util:os",
"//src/main/java/com/google/devtools/build/lib/util:process",
"//src/main/java/com/google/devtools/build/lib/util:shell_escaper",
"//src/main/java/com/google/devtools/build/lib/util:string",
"//src/main/java/com/google/devtools/build/lib/util/io",
Expand All @@ -93,7 +92,6 @@ java_library(
"//src/main/java/com/google/devtools/build/skyframe",
"//src/main/java/com/google/devtools/common/options",
"//src/main/java/com/google/devtools/common/options:invocation_policy",
"//src/main/protobuf:analysis_java_proto",
"//src/main/protobuf:bazel_flags_java_proto",
"//src/main/protobuf:command_server_java_proto",
"//src/main/protobuf:extra_actions_base_java_proto",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
import com.google.devtools.build.lib.util.InterruptedFailureDetails;
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.util.ProcessUtils;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDocumentationCategory;
Expand Down Expand Up @@ -210,7 +209,7 @@ public static boolean canUseAsync(boolean async, boolean expunge, OS os, Reporte
private static void asyncClean(CommandEnvironment env, Path path, String pathItemName)
throws IOException, CommandException, InterruptedException {
String tempBaseName =
path.getBaseName() + "_tmp_" + ProcessUtils.getpid() + "_" + UUID.randomUUID();
path.getBaseName() + "_tmp_" + ProcessHandle.current().pid() + "_" + UUID.randomUUID();

// Keeping tempOutputBase in the same directory ensures it remains in the
// same file system, and therefore the mv will be atomic and fast.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.runtime.InfoItem;
import com.google.devtools.build.lib.util.ProcessUtils;

/** Info item for server_pid. */
public final class ServerPidInfoItem extends InfoItem {
Expand All @@ -29,6 +28,6 @@ public ServerPidInfoItem(String productName) {
@Override
public byte[] get(
Supplier<BuildConfigurationValue> configurationSupplier, CommandEnvironment env) {
return print(ProcessUtils.getpid());
return print(ProcessHandle.current().pid());
}
}
1 change: 0 additions & 1 deletion src/test/java/com/google/devtools/build/lib/platform/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ java_test(
"//src/main/java/com/google/devtools/build/lib:runtime",
"//src/main/java/com/google/devtools/build/lib/platform:system_suspension_module",
"//src/main/java/com/google/devtools/build/lib/util:os",
"//src/main/java/com/google/devtools/build/lib/util:process",
"//src/test/java/com/google/devtools/build/lib/buildtool/util",
"//src/test/java/com/google/devtools/build/lib/packages:testutil",
"//third_party:guava",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import com.google.devtools.build.lib.runtime.BlazeRuntime;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.util.ProcessUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
Expand Down Expand Up @@ -65,7 +64,7 @@ public void testSuspendCounter() throws Exception {
.append("genrule(name='signal', ")
.append("outs=['signal.out'], ")
.append("cmd='/bin/kill -s CONT ")
.append(ProcessUtils.getpid())
.append(ProcessHandle.current().pid())
.append(" > $@')\n");
write("system_suspension_event/BUILD", buildFile.toString());
buildTarget("//system_suspension_event:signal");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/sandbox",
"//src/main/java/com/google/devtools/build/lib/shell",
"//src/main/java/com/google/devtools/build/lib/util:os",
"//src/main/java/com/google/devtools/build/lib/util:process",
"//src/main/java/com/google/devtools/build/lib/util:resource_converter",
"//src/main/java/com/google/devtools/build/lib/util:single_line_formatter",
"//src/main/java/com/google/devtools/build/lib/util/io",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
import com.google.devtools.build.lib.shell.CommandException;
import com.google.devtools.build.lib.shell.CommandResult;
import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.util.ProcessUtils;
import com.google.devtools.build.lib.util.SingleLineFormatter;
import com.google.devtools.build.lib.vfs.DigestHashFunction;
import com.google.devtools.build.lib.vfs.DigestHashFunction.DigestFunctionConverter;
Expand Down Expand Up @@ -191,10 +190,10 @@ private void createPidFile() throws IOException {
return;
}

final Path pidFile = getFileSystem().getPath(workerOptions.pidFile);
Path pidFile = getFileSystem().getPath(workerOptions.pidFile);
try (Writer writer =
new OutputStreamWriter(pidFile.getOutputStream(), StandardCharsets.UTF_8)) {
writer.write(Integer.toString(ProcessUtils.getpid()));
writer.write(Long.toString(ProcessHandle.current().pid()));
writer.write("\n");
}

Expand Down

0 comments on commit 47696c9

Please sign in to comment.