>>>>>> "MTO" == Matthew T O'Connor <matthew@zeut.net> writes:
>
> MTO> I don't run FreeBSD, so I haven't tested with FreeBSD. Recently
> Craig MTO> Boston reported and submitted a patch for a crash on FreeBSD,
> but that
>
> some more debugging data:
>
> (gdb) print now
> $2 = {tv_sec = 1070565077, tv_usec = 216477}
> (gdb) print then
> $3 = {tv_sec = 1070561568, tv_usec = 668963}
> (gdb) print diff
> $4 = -5459981371352
> (gdb) print sleep_secs
> $5 = -1272
>
> so for some reason, instead of calculating 3508547514 as the diff, it
> got a hugely negative number.
>
> I'll bet it has something to do with the compiler... more debugging to
> follow (without -O compilation...)
Could this be the recently reported bug where time goes backwards on
FreeBSD? Can anyone who knows more about this problem chime in, I know it
was recently discussed on Hackers.
The simple fix is to just make sure it's a positive number. If not, then
just sleep for some small positive amount. I can make a patch for this,
probably sometime this weekend.
Thanks for tracking this down.