RE: Recursive arena lock?

New Message Reply Date view Thread view Subject view Author view

From: Sebastian Capella (scapella++at++gstone.com)
Date: 06/05/2001 14:04:01


Oh, by the way, this only happens on Linux Performer

Sebastian

-----Original Message-----
From: guest++at++holodeck.engr.sgi.com [mailto:guest++at++holodeck.engr.sgi.com]On
Behalf Of Allan Schaffer
Sent: Tuesday, June 05, 2001 9:38 AM
To: Sebastian Capella; Performer mailing list
Subject: Re: Recursive arena lock?

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
-----------------------------------------------------------------------
 List Archives, FAQ, FTP:  http://www.sgi.com/software/performer/
Open Development Project:  http://oss.sgi.com/projects/performer/
             Submissions:  info-performer++at++sgi.com
         Admin. requests:  info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Jun 05 2001 - 14:04:46 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.