Skip to content

Commit

Permalink
logger: move pthread_t cast to pid_t into watchdog_initialize
Browse files Browse the repository at this point in the history
avoids compile error on OSX, trying to cast pthread_t to pid_t
  • Loading branch information
bkueng committed May 3, 2018
1 parent 24db762 commit a154718
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
5 changes: 2 additions & 3 deletions src/modules/logger/logger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -958,12 +958,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);
Expand Down
5 changes: 4 additions & 1 deletion src/modules/logger/watchdog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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++) {
Expand Down
2 changes: 1 addition & 1 deletion src/modules/logger/watchdog.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit a154718

Please sign in to comment.