void handleTimeouts(void) { #ifdef OLD_VMS struct timeval6 now; #else struct timeval now; #endif GLUTtimer *timer; /* Assumption is that __glutTimerList is already determined to be non-NULL. */ GETTIMEOFDAY(&now); while (IS_AT_OR_AFTER(__glutTimerList->timeout, now)) { timer = __glutTimerList; /* call the timer function */ timer->func(timer->value); /* remove from the linked list */ __glutTimerList = timer->next; /* put this timer on the "free" list */ timer->next = freeTimerList; freeTimerList = timer; if (!__glutTimerList) break; } }
XtInputMask XETrapAppPending(XtAppContext app) { TimerEventRec *te_ptr; #ifndef VMS struct timeval cur_time; #else /* vms */ vms_time cur_time; long efnMask = 0L; int status; #endif /* vms */ XtInputMask retmask = XtAppPending(app); /* Prime XtIMEvent */ retmask &= ~(XtIMTimer | XtIMAlternateInput); /* clear timer & input */ /* Now test for timer */ te_ptr = app->timerQueue; while (te_ptr != NULL) { #ifndef vms (void)gettimeofday(&cur_time, NULL); FIXUP_TIMEVAL(cur_time); #else sys$gettim(&cur_time); #endif /* vms */ if (IS_AT_OR_AFTER(te_ptr->te_timer_value, cur_time)) { /* this timer is due to fire */ retmask |= XtIMTimer; break; } te_ptr = te_ptr->te_next; } /* Now test for alternate input */ #ifndef vms if (app->outstandingQueue != NULL) { retmask |= XtIMAlternateInput; } #else /* vms */ if ((app->Input_EF_Mask != 0L) && ((status=SYS$READEF(1,&efnMask)) == 1)) { /* we have input configured & retrieved the efn cluster 0 */ efnMask &= app->Input_EF_Mask; /* mask out non-input */ if (efnMask) /* any left? */ { /* yes, an alt-input efn is set */ retmask |= XtIMAlternateInput; } } #endif /* vms */ return(retmask); }
void handleTimeouts(void) { struct timeval now; GLUTtimer *timer; /* Assumption is that __glutTimerList is already determined to be non-NULL. */ GETTIMEOFDAY(&now); while (IS_AT_OR_AFTER(__glutTimerList->timeout, now)) { timer = __glutTimerList; timer->func(timer->value); __glutTimerList = timer->next; timer->next = freeTimerList; freeTimerList = timer; if (!__glutTimerList) break; } }