[Vm-dev] Odd image lock-up on Unix

John M McIntosh johnmci at smalltalkconsulting.com
Tue Apr 3 04:36:29 UTC 2007


well no, microSeconds shouldn't be -1075955024

I'll note in aioPoll we have

       now= ioMSecs();
       microSeconds -= (now - ms) * 1000;
       if (microSeconds <= 0)
	return 0;


maybe the aioPoll is inlined into the aioSleep ?
Did you look at the assembler?

On Apr 2, 2007, at 8:15 PM, Andreas Raab wrote:

> What I'm much more curious about is this:
>
> #2  0x0806fc03 in aioSleep (microSeconds=-1075955024) at /home/ 
> araab/QwaqVM/platforms/unix/vm/aio.c:273
> #3  0x00b34001 in display_ioRelinquishProcessorForMicroseconds  
> (microSeconds=1000)
>     at /home/araab/QwaqVM/platforms/unix/vm-display-X11/sqUnixX11.c: 
> 2304
>
> How can a call to display_ioRelinquishProcessorForMicroseconds 
> (1000) end up to be a call to aioSleep(-1075955024) given that it  
> is implemented like here:
>
> static sqInt display_ioRelinquishProcessorForMicroseconds(sqInt  
> microSeconds)
> {
>   aioSleep(handleEvents() ? 0 : microSeconds);
>   return 0;
> }
>
> The only difference I see is that the argument is declared as sqInt  
> but that aioSleep takes an int - but I wouldn't expect that to  
> cause problems. Unless it's been declared even differently from  
> that, but in this case I would expect every call to go wrong.
>
> Any theories to offer anyone? (other than cosmic rays)
>
> Cheers,
>   - Andreas

--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Vm-dev mailing list