rem: delay->tv_sec = timerHandler->when.tv_sec - now.tv_sec; delay->tv_usec = timerHandler->when.tv_usec - now.tv_usec;
add: delay->tv_sec = handler->when.tv_sec - now.tv_sec; delay->tv_usec = handler->when.tv_usec - now.tv_usec;
context: delayUntilNextTimerEvent(struct timeval *delay){    struct timeval now;    if (!timerHandler) {        /* The return value of this function is only valid if there _are_         timers active. */	delay->tv_sec = 0;	delay->tv_usec = 0;	return;    }    rightNow(&now);    if (IS_AFTER(now, timerHandler->when)) {	delay->tv_sec = 0;	delay->tv_usec = 0;    } else {	delay->tv_sec = timerHandler->when.tv_sec - now.tv_sec;	delay->tv_usec = timerHandler->when.tv_usec - now.tv_usec;	if (delay->tv_usec < 0) {	    delay->tv_usec += 1000000;	    delay->tv_sec--;	}    }}