diff --git a/src/modules/systemlib/err.h b/src/modules/systemlib/err.h index 05401128efd99373cea8ecadad310d164d5d08b8..35d028149e6dcab47937b0a67b32557bde9474df 100644 --- a/src/modules/systemlib/err.h +++ b/src/modules/systemlib/err.h @@ -75,8 +75,11 @@ __EXPORT const char *getprogname(void); #ifdef __PX4_POSIX -#define err(...) ERROR -#define errx(...) ERROR +#include <errno.h> +#include <px4_tasks.h> +#define err(eval, ...) do { PX4_ERR(__VA_ARGS__); PX4_ERR("Task exited with errno=%i\n", errno); \ + px4_task_exit(eval); } while(0) +#define errx(eval, ...) do { PX4_ERR(__VA_ARGS__); px4_task_exit(eval); } while(0) #define warn(...) PX4_WARN(__VA_ARGS__) #define warnx(...) PX4_WARN(__VA_ARGS__)