diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2018-05-30 12:18:01 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2018-05-30 12:55:17 +0200 |
commit | f392650be2434aadad71af95a0b81a33900e84ec (patch) | |
tree | bd8132a76fb62520102b81d553cf19ca35a193d0 /core/bind/core_bind.cpp | |
parent | 3d9dffdef7d436cda779ee4a659476fa94c62a35 (diff) | |
download | redot-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.cpp | 3 |
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); |