mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-25 17:23:34 +08:00
posix: improve error out for mlockall() and pthread_create
- add strerror - mlockall skipped in lockstep builds (ENABLE_LOCKSTEP_SCHEDULER)
This commit is contained in:
@@ -178,13 +178,13 @@ int main(int argc, char **argv)
|
||||
return client.process_args(argc, (const char **)argv);
|
||||
|
||||
} else {
|
||||
#if (_POSIX_MEMLOCK > 0)
|
||||
#if (_POSIX_MEMLOCK > 0) && !defined(ENABLE_LOCKSTEP_SCHEDULER)
|
||||
|
||||
// try to lock address space into RAM, to avoid page swap delay
|
||||
// TODO: Check CAP_IPC_LOCK instead of euid
|
||||
if (geteuid() == 0) { // root user
|
||||
if (mlockall(MCL_CURRENT) + mlockall(MCL_FUTURE)) { // check if both works
|
||||
PX4_ERR("mlockall() failed! errno: %d", errno);
|
||||
if (mlockall(MCL_CURRENT | MCL_FUTURE)) { // check if both works
|
||||
PX4_ERR("mlockall() failed! errno: %d (%s)", errno, strerror(errno));
|
||||
munlockall(); // avoid mlock limitation caused alloc failure in future
|
||||
|
||||
} else {
|
||||
@@ -192,7 +192,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif // (_POSIX_MEMLOCK > 0) && !ENABLE_LOCKSTEP_SCHEDULER
|
||||
|
||||
/* Server/daemon apps need to parse the command line arguments. */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user