2013-01-07 20:34:44 +01:00
|
|
|
2013-01-07 Christopher Faylor <me.cygwin2013@cgf.cx>
|
|
|
|
|
|
|
|
* thread.cc (pthread_rwlock::lookup_reader): Remove parameter: always
|
|
|
|
assume that we're looking for the current thread.
|
|
|
|
(pthread_rwlock::tryrdlock): Eliminate self variable. Accommodate
|
|
|
|
change in lookup_reader().
|
|
|
|
(pthread_rwlock::unlock): Ditto.
|
|
|
|
(pthread_rwlock::rdlock): Ditto. Move add_reader call after writer
|
|
|
|
tests to more closely mimic old behavior.
|
|
|
|
(pthread_rwlock::wrlock): Accommodate change in lookup_reader().
|
|
|
|
* thread.h ((pthread_rwlock::lookup_reader): Eliminate argument.
|
|
|
|
|
2013-01-07 17:01:10 +01:00
|
|
|
2013-01-07 Christopher Faylor <me.cygwin2013@cgf.cx>
|
|
|
|
|
|
|
|
* thread.cc (pthread_rwlock::add_reader): Perform new operation here
|
|
|
|
and return pointer to allocated RWLOCK_READER structure.
|
|
|
|
(pthread_rwlock::rdlock): Reorganize to reflect new add_reader
|
|
|
|
functionality.
|
|
|
|
(pthread_rwlock::tryrdlock): Ditto. Remove unneeded call to
|
|
|
|
lookup_reader().
|
|
|
|
* thread.h (pthread_rwlock::RWLOCK_READER::RWLOCK_READER): New
|
|
|
|
constructor.
|
|
|
|
(pthread_rwlock::add_reader): Reflect new functionality.
|
|
|
|
|
2013-01-04 03:21:03 +01:00
|
|
|
2013-01-03 Christopher Faylor <me.cygwin2013@cgf.cx>
|
|
|
|
|
|
|
|
* globals.cc (exit_states): Renumber so that ES_EXIT_STARTING is first,
|
|
|
|
as intended.
|
|
|
|
* sigproc.cc (wait_sig): Only stop accepting signals after
|
|
|
|
exit_state > ES_EXIT_STARTING.
|
|
|
|
|
2013-01-03 06:05:10 +01:00
|
|
|
2013-01-03 Christopher Faylor <me.cygwin2013@cgf.cx>
|
|
|
|
|
|
|
|
* sigproc.cc (exit_thread): Set thread signal mask so that no signals
|
|
|
|
are sent to an exiting thread.
|
|
|
|
|
2013-01-03 04:33:18 +01:00
|
|
|
2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx>
|
|
|
|
|
|
|
|
* sigproc.cc (no_signals_available): Remove exit_state test since
|
|
|
|
signals are available in a limited fashion when exiting.
|
|
|
|
(sig_dispatch_pending): Ditto.
|
|
|
|
(sig_send): Ditto.
|
|
|
|
(exit_thread): Rearrange to avoid an unnecessary DuplicateProcess when
|
|
|
|
exiting.
|
|
|
|
(wait_sig): Allow special signals when exiting.
|
|
|
|
|
2013-01-02 19:46:55 +01:00
|
|
|
2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx>
|
|
|
|
|
|
|
|
* DevNotes: Add entry cgf-000020, relating to previous checkin.
|
|
|
|
|
|
|
|
2013-01-02 Christopher Faylor <me.cygwin2013@cgf.cx>
|
2013-01-02 19:34:06 +01:00
|
|
|
|
|
|
|
* cygtls.h (_cygtls::signal_exit): Delete from class.
|
|
|
|
* exception.h (cygwin_exception): New class.
|
|
|
|
(cygwin_exception::dumpstack): Declare new function.
|
|
|
|
(cygwin_exception::context): Ditto.
|
|
|
|
(cygwin_exception::dump_exception): Ditto.
|
|
|
|
* exceptions.cc (cygwin_exception::dump_exception): Move into
|
|
|
|
cygwin_exception class. Accommodate new variable names.
|
|
|
|
(cygwin_exception::dumpstack): Ditto stackdump -> dumpstack.
|
|
|
|
(exception::handle): Move andreas processing earlier. Defer signal
|
|
|
|
processing decisions to the signal thread where they belong. Pass
|
|
|
|
exception information to sig_send via new siginfo_t si_cyg field.
|
|
|
|
(ctrl_c_handler): Wait for SIGHUP signal to be processed since it could
|
|
|
|
cause a process exit and we don't want races with thread exit lock.
|
|
|
|
(signal_exit): Move back here from sigproc.cc. Modify arguments and
|
|
|
|
remove from sigpacket class. Decide when to dump core based on signal
|
|
|
|
type.
|
|
|
|
(sigpacket::process): Handle exiting signals in context of threads
|
|
|
|
rather than in the signal thread. Signal debugger on non-Windows
|
|
|
|
signals. Remove setup_signal_exit call.
|
|
|
|
* sigproc.cc (no_signals_available): Remove argument.
|
|
|
|
(signal_exit_code): Delete.
|
|
|
|
(close_my_readsig): Ditto.
|
|
|
|
(_cygtls::signal_exit): Move to exceptions.cc.
|
|
|
|
(sigproc_terminate): Don't attempt to terminate signal thread.
|
|
|
|
(setup_signal_exit): Delete.
|
|
|
|
(exit_thread): Use new si_cyg entry in siginfo_t.
|
|
|
|
(sig_send): Just use empty initializer for si. Accommodate change in
|
|
|
|
no_signals_available argument.
|
|
|
|
(wait_sig): Remove attempt to "go asynchronous" on process exit.
|
|
|
|
Delete __SIGEXIT handling. Don't ever exit.
|
|
|
|
* sigproc.h: Remove __SIGEXIT from signal enum. Renumber.
|
|
|
|
* include/cygwin/signal.h (siginfo_t): Add si_cyg entry.
|