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:
Beat Küng 2018-05-03 13:18:45 +02:00 committed by Lorenz Meier
parent f2703abce0
commit b8a94bf8d4
3 changed files with 7 additions and 5 deletions

View File

@ -960,12 +960,11 @@ void Logger::run()
if (_writer.backend() & LogWriter::BackendFile) {
const pid_t pid_self = getpid();
// The pthread_t ID is equal to the PID on NuttX
const pid_t pid_writer = _writer.thread_id_file();
const pthread_t writer_thread = _writer.thread_id_file();
// 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
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);

View File

@ -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
// 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
for (int i = 0; i < CONFIG_MAX_TASKS; i++) {

View File

@ -58,7 +58,7 @@ struct watchdog_data_t {
/**
* 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