Joe Buehler <jhpb@draco.hekimian.com>

* fork.cc (fork_parent): Don't copy signals from parent to child here.
* sigproc.cc (proc_subproc): Copy signals from parent to child pinfo here.
This commit is contained in:
Christopher Faylor 2003-03-26 04:18:01 +00:00
parent b2b9de805f
commit 85738bf7e3
3 changed files with 37 additions and 32 deletions

View File

@ -1,31 +1,37 @@
2003-03-25 Christopher Faylor <cgf@redhat.com>
Joe Buehler <jhpb@draco.hekimian.com>
* fork.cc (fork_parent): Don't copy signals from parent to child here.
* sigproc.cc (proc_subproc): Copy signals from parent to child pinfo
here.
2003-03-23 Thomas Pfaff <tpfaff@gmx.net> 2003-03-23 Thomas Pfaff <tpfaff@gmx.net>
* thread.h (class List): Move inline code inside class * thread.h (class List): Move inline code inside class declaration.
declaration. (List::forEach): Change callback parameter to template class member
(List::forEach): Change callback parameter to template class function pointer.
member function pointer. (pthread_keys::fixup_before_fork): Change to inline. Use List::forEach
(pthread_keys::fixup_before_fork): Change to inline. Use to fixup keys.
List::forEach to fixup keys.
(pthread_keys::fixup_after_fork): Ditto. (pthread_keys::fixup_after_fork): Ditto.
(pthread_keys::runAllDestructors): Ditto. (pthread_keys::runAllDestructors): Ditto.
(pthread_key::saveAKey): Remove. (pthread_key::saveAKey): Remove.
(pthread_key::restoreAKey): Ditto. (pthread_key::restoreAKey): Ditto.
(pthread_key::destroyAKey): Ditto. (pthread_key::destroyAKey): Ditto.
(pthread_key::run_destructor): Rename to runDestructor. (pthread_key::run_destructor): Rename to runDestructor.
(pthread_mutex::fixup_after_fork): Change to inline. Use (pthread_mutex::fixup_after_fork): Change to inline. Use List::forEach
List::forEach to fixup mutexes after a fork. to fixup mutexes after a fork.
(pthread_mutex::FixupAfterFork): New method. (pthread_mutex::FixupAfterFork): New method.
(pthread_mutex::mutexes): New member. (pthread_mutex::mutexes): New member.
(pthread_cond::fixup_after_fork): Change to inline. Use (pthread_cond::fixup_after_fork): Change to inline. Use List::forEach
List::forEach to fixup conds after a fork. to fixup conds after a fork.
(pthread_cond::FixupAfterFork): New method. (pthread_cond::FixupAfterFork): New method.
(pthread_cond::conds): New member. (pthread_cond::conds): New member.
(pthread_rwlock::fixup_after_fork): Change to inline. Use (pthread_rwlock::fixup_after_fork): Change to inline. Use
List::forEach to fixup rwlocks after a fork. List::forEach to fixup rwlocks after a fork.
(pthread_rwlock::FixupAfterFork): New method. (pthread_rwlock::FixupAfterFork): New method.
(pthread_rwlock::rwlocks): New member. (pthread_rwlock::rwlocks): New member.
(semaphore::fixup_after_fork): Change to inline. Use (semaphore::fixup_after_fork): Change to inline. Use List::forEach to
List::forEach to fixup mutexes after a fork. fixup mutexes after a fork.
(semaphore::FixupAfterFork): New method. (semaphore::FixupAfterFork): New method.
(semaphore::semaphores): New member. (semaphore::semaphores): New member.
(MTinterface::mutexs): Remove. (MTinterface::mutexs): Remove.
@ -35,19 +41,19 @@
(pthread_equal): Add extern "C". (pthread_equal): Add extern "C".
(pthread_mutex_lock): Ditto. (pthread_mutex_lock): Ditto.
* thread.cc (MTinterface::fixup_after_fork): Change * thread.cc (MTinterface::fixup_after_fork): Change fixup_after_fork
fixup_after_fork calls for pthread objects. calls for pthread objects.
(semaphore::conds): Instantiate. (semaphore::conds): Instantiate.
(pthread_cond::pthread_cond): Use List::Insert rather than (pthread_cond::pthread_cond): Use List::Insert rather than custom list
custom list code. code.
(pthread_cond::~pthread_cond): Use List::Remove rather than (pthread_cond::~pthread_cond): Use List::Remove rather than custom list
custom list code. code.
(pthread_cond::fixup_after_fork): Rename to FixupAfterFork. (pthread_cond::fixup_after_fork): Rename to FixupAfterFork.
(pthread_rwlock::rwlocks): Instantiate. (pthread_rwlock::rwlocks): Instantiate.
(pthread_rwlock::pthread_crwlock): Use List::Insert rather than (pthread_rwlock::pthread_crwlock): Use List::Insert rather than custom
custom list code. list code.
(pthread_rwlock::~pthread_rwlock): Use List::Remove rather than (pthread_rwlock::~pthread_rwlock): Use List::Remove rather than custom
custom list code. list code.
(pthread_rwlock::fixup_after_fork): Rename to FixupAfterFork. (pthread_rwlock::fixup_after_fork): Rename to FixupAfterFork.
(pthread_key::saveAKey): Remove. (pthread_key::saveAKey): Remove.
(pthread_key::fixup_before_fork): Ditto. (pthread_key::fixup_before_fork): Ditto.
@ -57,16 +63,15 @@
(pthread_key::runAllDestructors): Ditto. (pthread_key::runAllDestructors): Ditto.
(pthread_key::run_destructor): Rename to runDestructor. (pthread_key::run_destructor): Rename to runDestructor.
(pthread_mutex::mutexes): Instantiate. (pthread_mutex::mutexes): Instantiate.
(pthread_mutex::pthread_mutex): Use List::Insert rather than (pthread_mutex::pthread_mutex): Use List::Insert rather than custom
custom list code. list code.
(pthread_mutex::~pthread_mutex): Use List::Remove rather than (pthread_mutex::~pthread_mutex): Use List::Remove rather than custom
custom list code. list code.
(pthread_mutex::fixup_after_fork): Rename to FixupAfterFork. (pthread_mutex::fixup_after_fork): Rename to FixupAfterFork.
(semaphore::conds): Instantiate. (semaphore::conds): Instantiate.
(semaphore::semaphore): Use List::Insert rather than custom list (semaphore::semaphore): Use List::Insert rather than custom list code.
(semaphores::~semaphore): Use List::Remove rather than custom list
code. code.
(semaphores::~semaphore): Use List::Remove rather than custom
list code.
(semaphore::fixup_after_fork): Rename to FixupAfterFork. (semaphore::fixup_after_fork): Rename to FixupAfterFork.
2003-03-22 Christopher Faylor <cgf@redhat.com> 2003-03-22 Christopher Faylor <cgf@redhat.com>

View File

@ -525,7 +525,6 @@ fork_parent (HANDLE& hParent, dll *&first_dll,
/* Fill in fields in the child's process table entry. */ /* Fill in fields in the child's process table entry. */
forked->hProcess = pi.hProcess; forked->hProcess = pi.hProcess;
forked->dwProcessId = pi.dwProcessId; forked->dwProcessId = pi.dwProcessId;
forked->copysigs (myself);
/* Hopefully, this will succeed. The alternative to doing things this /* Hopefully, this will succeed. The alternative to doing things this
way is to reserve space prior to calling CreateProcess and then fill way is to reserve space prior to calling CreateProcess and then fill

View File

@ -295,6 +295,7 @@ proc_subproc (DWORD what, DWORD val)
vchild->sid = myself->sid; vchild->sid = myself->sid;
vchild->ctty = myself->ctty; vchild->ctty = myself->ctty;
vchild->process_state |= PID_INITIALIZING | (myself->process_state & PID_USETTY); vchild->process_state |= PID_INITIALIZING | (myself->process_state & PID_USETTY);
vchild->copysigs (myself);
sigproc_printf ("added pid %d to wait list, slot %d, winpid %p, handle %p", sigproc_printf ("added pid %d to wait list, slot %d, winpid %p, handle %p",
vchild->pid, nchildren, vchild->dwProcessId, vchild->pid, nchildren, vchild->dwProcessId,