[Vm-dev] Camera sig fault on 64 bits machines.

Andreas Wacknitz a.wacknitz at gmx.de
Sat Apr 19 21:52:28 UTC 2014


Hi Eliot,

Today I was able to work on this problem again. Alas heartbeat_handler() in sqUnixTimerHeartbeat.c is not called automatically as it should be.
Only if I trigger an external ALRM signal (by means of signal -ALRM <pid>) it’s being called. I wasn’t able to find out how the trigger for it is being
set. The only place I found a nanosleep() call was in block() in sqUnixMain.c.
BTW what does with ticker and without ticker mean in respect to the heartbeat?

Best regards,
Andreas

Am 11.04.2014 um 18:02 schrieb Eliot Miranda <eliot.miranda at gmail.com>:

> Hi Andreas, Hi Tty,
> 
> 
> On Fri, Apr 11, 2014 at 7:54 AM, Andreas Wacknitz <a.wacknitz at gmx.de> wrote:
>  
> 
> Am 10.04.2014 um 22:49 schrieb Colin Putney <colin at wiresong.com>:
> 
>> 
>> 
>> 
>> On Thu, Apr 10, 2014 at 3:35 PM, gettimothy <gettimothy at zoho.com> wrote:
>>  
>> I have considered Open Solaris and FreeBSD for my former dos partition--I don't know if CMake will work on them, but I will investigate. Do you have a link for open solaris? When I checked a few days ago Oracle had branded everything and I prefer to not deal with Ellison if I can.
>> 
>> I did some work a while back to build Cog on SmartOS and OpenIndiana. I got it to compile and run, but the image couldn't do IO or respond to UI events. I've found VirtualBox handy for this sort of thing—you can get ready-made images for many operating systems, which saves installing and configuring a bare-metal installation. 
> So you got as far as I did. After some thoughts I guess the heart beat Eliot introduced for Cog might be a possible cause of the problem.
> When I did my first Solaris compilations of the Squeak VM a couple of years ago I had to adjust the signal handler installation. Solaris needs re-registration after a signal has been caught. I will take a look asap.
> 
> Noe that the itemer/signal based heartbeat should be viewed as the heartbeat of last resort :-).  It has bad effects when integrating with external code, interrupting system calls etc.  Unless this external code is written to cope with interrupted calls that can't be restarted such as poll or select, the heartbeat needs to be disabled around calls to the external code.
> 
> Instead, the pthread/nanosleep based heartbeat (in platforms/unix/vm/sqUnixHeartbeat.c) is benign but does require multiple thread priorities in pthreads so that the heartbeat thread can run at a higher priority than the VM thread and hence reliably interrupt it.
> 
> -- 
> best,
> Eliot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140419/64cd0d35/attachment.htm


More information about the Vm-dev mailing list