[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Problems with X server
Date: Thu, 17 Oct 1991 16:53 EDT
From: readingj@CERF.NET (John D. Reading)
I just went to connect to a remote host using the X server program
on the Symbolics, and got a "divide by 0" error. "That's strange", I
thought. So I went and looked at the routine that was giving the
error. It was supposed to return the time in milliseconds. Predictably
enough, it gets the full-microsecond-time, then calls some undocumented
function to divide the two-part number thus obtained by 1000. After a
little fiddling I realized that full-microsecond-time has just very
recently (probably today?) clicked over to 1000 in the high value it
is returning. I tried using (mod high 1000) in the routine as an
argument to the undocumented function, and it worked just fine.
Question: Is everybody else having this problem today, or is it only
me? Does anybody have a better solution than mine? The actual function
being called by X is x-server:|GetTimeInMillis|, and the function
getting the error is sys:%divide-bignum-step (for which I don't have
the source, so I have no idea how to fix it).
This problem occurs when your system has been up too long. It's handing
a number that's too large to be a component of a bignum to a bignum
Your fix is exactly what I use. Actually, for a long time I was using a
version of the patch that called microsecond-time and then called FLOOR.
The code is trying hard to avoid consing bignums. Eventually I realized
that the MOD solution is equivalent.