From 7b915675855dc91d68d9cb42c81688e46821c868 Mon Sep 17 00:00:00 2001 From: Saran Tunyasuvunakool Date: Fri, 17 Mar 2023 06:52:14 -0700 Subject: [PATCH] Exit `mjpython` if any pthread function call fails. PiperOrigin-RevId: 517401871 Change-Id: I2050769085690d50d331f2955ed1e09ca4c8414c --- python/mujoco/mjpython/mjpython.mm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/python/mujoco/mjpython/mjpython.mm b/python/mujoco/mjpython/mjpython.mm index aba3a41e..4d55d9b3 100644 --- a/python/mujoco/mjpython/mjpython.mm +++ b/python/mujoco/mjpython/mjpython.mm @@ -207,7 +207,7 @@ int main(int argc, char** argv) { const char* libpython_path = getenv("MJPYTHON_LIBPYTHON"); if (!libpython_path || !libpython_path[0]) { std::cerr << "This binary must be launched via the mjpython.py script.\n"; - return 1; + return EXIT_FAILURE; } // Enlarge the stack if necessary to match what Python normally expects to have when launching @@ -243,7 +243,7 @@ int main(int argc, char** argv) { void* libpython = dlopen(libpython_path, RTLD_NOW | RTLD_GLOBAL); if (!libpython) { std::cerr << "failed to dlopen path '" << libpython_path << "': " << dlerror() << "\n"; - return 1; + return EXIT_FAILURE; } // Look up required CPython API functions from table of symbols already loaded into the process. @@ -252,7 +252,7 @@ int main(int argc, char** argv) { cpython.fname = reinterpret_cast(dlsym(libpython, #fname)); \ if (!cpython.fname) { \ std::cerr << "failed to dlsym '" << #fname << "': " << dlerror() << "\n"; \ - return 1; \ + return EXIT_FAILURE; \ } \ } @@ -287,6 +287,7 @@ int main(int argc, char** argv) { int result = func(__VA_ARGS__); \ if (result) { \ std::cerr << #func << " failed with " << result << "(" << std::strerror(result) << ")\n"; \ + return EXIT_FAILURE; \ } \ }