summaryrefslogtreecommitdiffstats
path: root/core/bind/core_bind.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2018-05-30 12:18:01 +0200
committerRémi Verschelde <rverschelde@gmail.com>2018-05-30 12:55:17 +0200
commitf392650be2434aadad71af95a0b81a33900e84ec (patch)
treebd8132a76fb62520102b81d553cf19ca35a193d0 /core/bind/core_bind.cpp
parent3d9dffdef7d436cda779ee4a659476fa94c62a35 (diff)
downloadredot-engine-f392650be2434aadad71af95a0b81a33900e84ec.tar.gz
Improve return value of OS.execute in blocking/non-blocking variants
Initialized the PID to -2, which will be the value returns in blocking- mode where the PID is not available. (-1 was already taken to signify an execution failure). OS::execute will now properly return a non-OK error code when it fails to execute the target file. The documentation was rewritten to be very clear about the differences between blocking and non-blocking mode. Fixes #19056.
Diffstat (limited to 'core/bind/core_bind.cpp')
-rw-r--r--core/bind/core_bind.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index 14e3804840..b7f20588f2 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -399,7 +399,7 @@ Error _OS::shell_open(String p_uri) {
int _OS::execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking, Array p_output) {
- OS::ProcessID pid;
+ OS::ProcessID pid = -2;
List<String> args;
for (int i = 0; i < p_arguments.size(); i++)
args.push_back(p_arguments[i]);
@@ -412,6 +412,7 @@ int _OS::execute(const String &p_path, const Vector<String> &p_arguments, bool p
else
return pid;
}
+
Error _OS::kill(int p_pid) {
return OS::get_singleton()->kill(p_pid);