- 論壇徽章:
- 0
|
小弟是用android的 ndk-gdb (與gdb 基本相同)調(diào)試的.
構(gòu)造函數(shù)
void CPiPTimer::ConstructL(pTimerCallback pObserver)
{
m_structFuncPkg = (ptimer_callback)malloc(sizeof(timer_callback));
memset(m_structFuncPkg,0,sizeof(timer_callback));
m_structFuncPkg->callbackFunc = pObserver;
m_structFuncPkg->timer = &m_timer;
m_pWindow = (CPiPWindow*)GLOBAL->g_window->obj;
sigfillset (&m_sigset);
sigdelset (&m_sigset, SIGRTMIN);
sigprocmask (SIG_SETMASK, &m_sigset, NULL);
sigfillset (&m_sa.sa_mask);
m_sa.sa_flags = SA_SIGINFO;
m_sa.sa_sigaction = handler;
m_timerspec.it_value.tv_sec = 0;
m_timerspec.it_value.tv_nsec = 50 * 1000 * 1000;//50毫秒后啟動定時器
m_timerspec.it_interval.tv_sec = 0;
m_timerspec.it_interval.tv_nsec = 75 * 1000 * 1000;//定時75毫秒
m_timer_event.sigev_notify = SIGEV_SIGNAL;
m_timer_event.sigev_signo = SIGRTMIN;
m_timer_event.sigev_value.sival_ptr = (void *) (m_structFuncPkg);
//創(chuàng)建定時器
int ret = timer_create (CLOCK_REALTIME, &m_timer_event, &m_timer);
if (ret < 0)
{
perror ("timer_create failed");
exit (-1);
}
}
void handler (int sig, siginfo_t * extra, void *cruft)
{
...
}
當小弟用SIGEV_SIGNAL的時候就會產(chǎn)生題目中的錯誤(Program received signal ?, Unknown signal.)
用SIGEV_NONE就沒有此錯誤,但是不能定時執(zhí)行 我想要執(zhí)行的 函數(shù)handler了,請大俠們指點,小弟謝過先 |
|