From: Allan Schaffer (allan++at++sgi.com)
Date: 06/05/2001 09:38:22
On Jun 4, 10:32am, Sebastian Capella wrote:
> I'm getting this message when I exit my program. It happens during my
> cleanup. Does anyone know why this would happen?
That happens when the semaphore operation in arena_lock() gets an
interrupt (and fails). It then tries again, recursing back into
itself until there are no more interrupts.
This was put in place to fix a more common problem: when attaching to
a performer process in the debugger, if you did ^C in a process that
was waiting for a lock, the lock would be broken by the interrupt and
cause problems downstream. This code puts the lock back in place
before giving control to the debugger.
In pseudocode,
arena_lock()
{
...
semop(p)
...
if (failed) /* errno contains the error ID */
if (errno == EINTR)
arena_lock()
else if ...
...
}
The item to investigate, what's generating all the interrupts? [also
what's the overall symptom -- segfault?]
Allan
-- Allan Schaffer allan++at++sgi.com Engineering Manager, OpenGL Performer 1-650-933-2160 Silicon Graphics http://reality.sgi.com/allan
This archive was generated by hypermail 2b29 : Tue Jun 05 2001 - 09:38:38 PDT