Lines Matching refs:tp
51 struct timeval tp;
52 timeofday(&tp);
53 now = tp.tv_sec + 1.e-6*tp.tv_usec;
89 register Timer_t *tp, *tplast, *tpold, *tpnext;
111 for(tplast=0,tp=tptop; tp; tp=tpnext)
113 tpnext = tp->next;
114 if(tp->action)
116 if(tp->wakeup <=now)
118 if(!tpold || tpold->wakeup>tp->wakeup)
119 tpold = tp;
123 if(!tpmin || tpmin->wakeup>tp->wakeup)
124 tpmin=tp;
126 tplast = tp;
131 tplast->next = tp->next;
133 tptop = tp->next;
134 tp->next = tpfree;
135 tpfree = tp;
138 if((tp=tpold) && tp->incr)
140 while((tp->wakeup += tp->incr) <= now);
141 if(!tpmin || tpmin->wakeup>tp->wakeup)
142 tpmin=tp;
144 if(tpmin && (left==0 || (tp && tpmin->wakeup < (now+left))))
154 if(tp)
157 action = tp->action;
158 if(!tp->incr)
159 tp->action = 0;
162 (*action)(tp->handle);
183 register Timer_t *tp;
189 if(tp=tpfree)
190 tpfree = tp->next;
191 else if(!(tp=(Timer_t*)malloc(sizeof(Timer_t))))
193 tp->wakeup = getnow() + t;
194 tp->incr = (flags?t:0);
195 tp->action = action;
196 tp->handle = handle;
198 tp->next = tptop;
199 tptop = tp;
200 if(!tpmin || tp->wakeup < tpmin->wakeup)
202 tpmin = tp;
213 tp = tptop;
222 if(tp!=tptop)
223 tp=0;
225 return((void*)tp);
229 * delete timer <tp>. If <tp> is NULL, all timers are deleted
233 register Timer_t *tp = (Timer_t*)handle;
234 if(tp)
235 tp->action = 0;
238 for(tp=tptop; tp; tp=tp->next)
239 tp->action = 0;