drivers/timers_unix/timers_unix.c
changeset 149 fe50ada8020b
parent 145 e747d2e26af0
child 401 2c90876b9751
equal deleted inserted replaced
148:ad3de8730172 149:fe50ada8020b
    52 	timer_create (CLOCK_REALTIME, &sigev, &timer);
    52 	timer_create (CLOCK_REALTIME, &sigev, &timer);
    53 }
    53 }
    54 
    54 
    55 void StopTimerLoop(void)
    55 void StopTimerLoop(void)
    56 {
    56 {
       
    57 	EnterMutex();
    57 	timer_delete (timer);
    58 	timer_delete (timer);
       
    59 	LeaveMutex();
    58 }
    60 }
    59 
    61 
    60 void StartTimerLoop(TimerCallback_t init_callback)
    62 void StartTimerLoop(TimerCallback_t init_callback)
    61 {
    63 {
    62 	initTimer();
    64 	initTimer();
       
    65 	EnterMutex();
    63 	// At first, TimeDispatch will call init_callback.
    66 	// At first, TimeDispatch will call init_callback.
    64 	SetAlarm(NULL, 0, init_callback, 0, 0);
    67 	SetAlarm(NULL, 0, init_callback, 0, 0);
       
    68 	LeaveMutex();
    65 }
    69 }
    66 
    70 
    67 void CreateReceiveTask(CAN_PORT port, TASK_HANDLE* Thread, void* ReceiveLoopPtr)
    71 void CreateReceiveTask(CAN_PORT port, TASK_HANDLE* Thread, void* ReceiveLoopPtr)
    68 {
    72 {
    69 	pthread_create(Thread, NULL, ReceiveLoopPtr, (void*)port);
    73 	pthread_create(Thread, NULL, ReceiveLoopPtr, (void*)port);