void NetscapePlugin::Timer::timerFired() { m_timerFunc(&m_netscapePlugin->m_npp, m_timerID); if (!m_repeat) m_netscapePlugin->unscheduleTimer(m_timerID); }
void PluginTimer::fired() { if (!m_unscheduled) { m_fired = true; m_timerFunc(m_instance, m_timerID); m_fired = false; } if (!m_repeat || m_unscheduled) delete this; }
void CTimer::OnTimer() { #ifndef WIN32 fd_set fdSet; FD_ZERO(&fdSet); FD_SET(m_event[0], &fdSet); timeval tv; #endif while (m_bStart) { #ifdef WIN32 if (WaitForSingleObject(m_event, m_nExpires) == WAIT_OBJECT_0) { J_OS::LOGERROR("CTimer::OnTimer() Timer WaitForSingleObject error"); break; } #else tv.tv_sec = m_nExpires / 1000; tv.tv_usec = (m_nExpires % 1000) * 1000; FD_ZERO(&fdSet); FD_SET(m_event[0], &fdSet); if(select(m_event[0] + 1, &fdSet, NULL, NULL, &tv) < 0) { if (errno == EINTR) continue; J_OS::LOGERROR("CTimer::OnTimer() Timer select error"); break; } if(FD_ISSET(m_event[0], &fdSet)) { char end_buf; read(m_event[0], &end_buf, 1); close(m_event[0]); m_bStart = false; break; } #endif m_timerFunc(m_pUser); } }