int cavan_thread_run_self(struct cavan_thread *thread, void *data, int flags) { int ret; ret = cavan_thread_init(thread, data, flags); if (ret < 0) { pr_red_info("cavan_thread_init"); return ret; } cavan_thread_main_loop(thread); cavan_thread_deinit(thread); return 0; }
int cavan_thread_run(struct cavan_thread *thread, void *data, int flags) { int ret; ret = cavan_thread_init(thread, data, flags); if (ret < 0) { pr_red_info("cavan_thread_init"); return ret; } ret = cavan_thread_start(thread); if (ret < 0) { pr_red_info("cavan_thread_start"); goto out_cavan_thread_deinit; } return 0; out_cavan_thread_deinit: cavan_thread_deinit(thread); return ret; }
void cavan_alarm_thread_deinit(struct cavan_alarm_thread *thread) { cavan_thread_deinit(&thread->thread); double_link_deinit(&thread->link); pthread_mutex_destroy(&thread->lock); }
CavanThread::~CavanThread(void) { cavan_thread_stop(&mThread); cavan_thread_deinit(&mThread); }