timeval.t_sec is of type time_t, which is not always compatible with long.
I'm not sure if this was just harmless warning or a real bug, but this
fixes it, anyway.
if (standby_message_timeout)
{
TimestampTz targettime;
+ long secs;
+ int usecs;
targettime = TimestampTzPlusMilliseconds(last_status,
standby_message_timeout - 1);
localTimestampDifference(now,
targettime,
- &timeout.tv_sec,
- (int *) &timeout.tv_usec);
- if (timeout.tv_sec <= 0)
+ &secs,
+ &usecs);
+ if (secs <= 0)
timeout.tv_sec = 1; /* Always sleep at least 1 sec */
+ else
+ timeout.tv_sec = secs;
+ timeout.tv_sec = usecs;
timeoutptr = &timeout;
}
else