
12 Apr
2006
12 Apr
'06
11:41 a.m.
On 12 April 2006 11:30, John Meacham wrote:
On Wed, Apr 12, 2006 at 11:19:53AM +0100, Simon Marlow wrote:
The safe points don't even have to be very often: in GHC the context switch check is made after every 4k of allocation.
indeed, which means GHC technically doesn't meet the preemptive requirements since a tight mathematical non-allocating loop can halt it.
in order to do true preemption, you'd need to respond to SIGALRM or something like that, which can be quite tricky.
Not at all, we could make non-allocating loops bump the heap pointer and do heap checks, but we choose not to. It's just a bug that we don't do this, and it virtually never happens in practice. Cheers, Simon