* dcrt0.cc (sigthread::init): Reinstitute sigthread lock as a critical section.

(dll_crt0_1): Move sigthread lock initialization to earlier in startup.
* exceptions.cc (interrupt_on_return): Remove previous kludgy attempt to detect
an invalid frame.
(call_handler): Eliminate inner for loop.  Grab signal critical section lock
where appropriate.
* sigproc.cc (proc_subproc): Restore uid setting.
* sigproc.h (sigthread): Reinstitute sigthread lock as a critical section.
(sigframe): Grab the sigthread lock before clearing frame to avoid having the
signal thread use an invalid frame.
This commit is contained in:
Christopher Faylor
2000-11-06 23:12:05 +00:00
parent a42c18f0dd
commit c0188ae7cb
5 changed files with 74 additions and 82 deletions

View File

@@ -258,6 +258,7 @@ proc_subproc (DWORD what, DWORD val)
0, TRUE, DUPLICATE_SAME_ACCESS))
system_printf ("Couldn't duplicate my handle<%p> for pid %d, %E", hMainProc, vchild->pid);
vchild->ppid = myself->pid;
vchild->uid = myself->uid;
vchild->gid = myself->gid;
vchild->pgid = myself->pgid;
vchild->sid = myself->sid;