From: etisserant Date: Tue, 19 Feb 2008 13:52:40 +0000 (+0000) Subject: Fixed segfault on quit with Xenomai, due to bat parameter type in waitReceiveTaskEnd. X-Git-Url: https://rtime.felk.cvut.cz/gitweb/CanFestival-3.git/commitdiff_plain/fc41c36cb8038169cb41014239e1420b46efedb0 Fixed segfault on quit with Xenomai, due to bat parameter type in waitReceiveTaskEnd. --- diff --git a/drivers/timers_unix/timers_unix.c b/drivers/timers_unix/timers_unix.c index 5a53cf5..f2e3ba3 100644 --- a/drivers/timers_unix/timers_unix.c +++ b/drivers/timers_unix/timers_unix.c @@ -73,10 +73,10 @@ void CreateReceiveTask(CAN_PORT port, TASK_HANDLE* Thread, void* ReceiveLoopPtr) pthread_create(Thread, NULL, ReceiveLoopPtr, (void*)port); } -void WaitReceiveTaskEnd(TASK_HANDLE Thread) +void WaitReceiveTaskEnd(TASK_HANDLE *Thread) { - pthread_kill(Thread, SIGTERM); - pthread_join(Thread, NULL); + pthread_kill(*Thread, SIGTERM); + pthread_join(*Thread, NULL); } #define maxval(a,b) ((a>b)?a:b) diff --git a/drivers/unix/unix.c b/drivers/unix/unix.c index 074272f..6d46c5b 100644 --- a/drivers/unix/unix.c +++ b/drivers/unix/unix.c @@ -190,7 +190,7 @@ int canClose(CO_Data * d) int res = DLL_CALL(canClose)(tmp->fd); - WaitReceiveTaskEnd(tmp->receiveTask); + WaitReceiveTaskEnd(&tmp->receiveTask); return res; } diff --git a/include/timers_driver.h b/include/timers_driver.h index c6b7d75..0504a51 100644 --- a/include/timers_driver.h +++ b/include/timers_driver.h @@ -30,7 +30,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // For use from CAN driver void EnterMutex(void); void LeaveMutex(void); -void WaitReceiveTaskEnd(TASK_HANDLE); +void WaitReceiveTaskEnd(TASK_HANDLE*); // For use from application void StartTimerLoop(TimerCallback_t init_callback);