Um..., stupid question. As usual, I haven't thought about this much, or traced it too far yet, but...
__sigbe begins by pushing ebx, edx, and eax. It ends by poping just eax and edx. Why don't you need to pop ebx? On Thu, 4 Mar 2004, Christopher Faylor wrote: > I see what is causing the symptom but not what is causing the problem. > I spent a sleepless night modelling multi-threaded signal interrupts > in my head but I'm still not any closer to understanding the problem. > > The problem is that malloc allocates some memory, puts the address of > the memory in the eax register, and then returns. In the meantime, two > signals have come in, so rather than return immediately, malloc returns > to the signal handler and then the signal handler is called again. In > some cases, this causes the eax register to become zero and so make > (rightly) complains. In theory, this shouldn't happen since the eax > register should have been saved on the stack. > > Nope. Typing an explanation doesn't help me figure this out. Bummer. > -- Brian Ford Senior Realtime Software Engineer VITAL - Visual Simulation Systems FlightSafety International Phone: 314-551-8460 Fax: 314-551-8444 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/