mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-18 20:03:33 +08:00
logger: move pthread_t cast to pid_t into watchdog_initialize
avoids compile error on OSX, trying to cast pthread_t to pid_t
This commit is contained in:
@@ -960,12 +960,11 @@ void Logger::run()
|
|||||||
if (_writer.backend() & LogWriter::BackendFile) {
|
if (_writer.backend() & LogWriter::BackendFile) {
|
||||||
|
|
||||||
const pid_t pid_self = getpid();
|
const pid_t pid_self = getpid();
|
||||||
// The pthread_t ID is equal to the PID on NuttX
|
const pthread_t writer_thread = _writer.thread_id_file();
|
||||||
const pid_t pid_writer = _writer.thread_id_file();
|
|
||||||
|
|
||||||
// sched_note_start is already called from pthread_create and task_create,
|
// sched_note_start is already called from pthread_create and task_create,
|
||||||
// which means we can expect to find the tasks in system_load.tasks, as required in watchdog_initialize
|
// which means we can expect to find the tasks in system_load.tasks, as required in watchdog_initialize
|
||||||
watchdog_initialize(pid_self, pid_writer, timer_callback_data.watchdog_data);
|
watchdog_initialize(pid_self, writer_thread, timer_callback_data.watchdog_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
hrt_call_every(&timer_call, _log_interval, _log_interval, timer_callback, &timer_callback_data);
|
hrt_call_every(&timer_call, _log_interval, _log_interval, timer_callback, &timer_callback_data);
|
||||||
|
|||||||
@@ -133,10 +133,13 @@ bool watchdog_update(watchdog_data_t &watchdog_data)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void watchdog_initialize(const pid_t pid_logger_main, const pid_t pid_logger_writer, watchdog_data_t &watchdog_data)
|
void watchdog_initialize(const pid_t pid_logger_main, const pthread_t writer_thread, watchdog_data_t &watchdog_data)
|
||||||
{
|
{
|
||||||
#ifdef __PX4_NUTTX
|
#ifdef __PX4_NUTTX
|
||||||
|
|
||||||
|
// The pthread_t ID is equal to the PID on NuttX
|
||||||
|
const pthread_t pid_logger_writer = writer_thread;
|
||||||
|
|
||||||
sched_lock(); // need to lock the tcb access
|
sched_lock(); // need to lock the tcb access
|
||||||
|
|
||||||
for (int i = 0; i < CONFIG_MAX_TASKS; i++) {
|
for (int i = 0; i < CONFIG_MAX_TASKS; i++) {
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ struct watchdog_data_t {
|
|||||||
/**
|
/**
|
||||||
* Initialize the watchdog, fill in watchdog_data.
|
* Initialize the watchdog, fill in watchdog_data.
|
||||||
*/
|
*/
|
||||||
void watchdog_initialize(const pid_t pid_logger_main, const pid_t pid_logger_writer, watchdog_data_t &watchdog_data);
|
void watchdog_initialize(const pid_t pid_logger_main, const pthread_t writer_thread, watchdog_data_t &watchdog_data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the watchdog and trigger it if necessary. It is triggered when the log writer task is in
|
* Update the watchdog and trigger it if necessary. It is triggered when the log writer task is in
|
||||||
|
|||||||
Reference in New Issue
Block a user