📄 changelog
字号:
location if !wincap.needs_memory_protection. * wincap.cc: Implement needs_memory_protection throughout. * wincap.h: Ditto.2002-10-15 Christopher Faylor <cgf@redhat.com> * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. (child_info_fork::mount_table): Remove. (child_info_fork::myself_addr): Remove. * fork.cc (fork_child): Don't set either of the above. * dcrt0.cc (dll_crt0_1): Call memory_init as early as possible. * fhandler_console.cc (console_state): Move to shared_info.h. (fhandler_console::get_tty_stuff): Reflect open_shared arg change. * pinfo.cc (myself_addr): Remove definition. (pinfo::init): Get myself address from open_shared. * pinfo.h (myself_addr): Remove declaration. * shared.cc (open_shared): Rework so that known shared memory locations are protected. Take shared memory type as fifth argument. (memory_init): Reflect open_shared arg change. * shared_info.h (shared_locations): New enum. (console_state): Move here. (open_shared): Reflect open_shared arg change in declaration.2002-10-14 Christopher Faylor <cgf@redhat.com> * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. (child_info_fork::heaptop): Remove obsolete element. (child_info_fork::heabbase): Ditto. (child_info_fork::heapptr): Ditto. (child_info_fork::mount_table): New element. (child_info_fork::myself_addr): Ditto. * dcrt0.cc (dll_crt0_1): Set mount_table and myself_addr when forking. (initial_env): Add newline to "sleeping" message. * dll_init.cc (reserve_upto): Accommodate cygwin heap when freeing memory. Make debugging output a little more descriptive. * fork.cc (fork_parent): Save mount_table and myself_addr. * pinfo.cc (myself_addr): New variable. (set_myself): Pass PID_MYSELF flag to init. (pinfo::init): Honor PID_MYSELF. Save address where myself shared memory resides in myself_addr, for fork. * pinfo.h (myself_addr): Declare. * shared.cc (memory_init): On fork, use previously saved address for location of mount table. * include/sys/cygwin.h (PID_MYSELF): New value. * dtable.cc (dtable::stdio_init): Don't pass access type to init_std_file_from_handle. It's always the same. (dtable::init_std_file_from_handle): Remove access type argument. Assume read/write. * dtable.h (dtable::init_std_file_from_handle): Ditto for declaration. * exceptions.cc (try_to_debug): Don't try to debug if already being debugged. * fhandler_console.cc (shared_console_info_save): New variable. (fhandler_console::get_tty_stuff): Save address of shared console stuff for fork.2002-10-13 Christopher Faylor <cgf@redhat.com> * cygthread.cc (cygthread::stub): Reintroduce clearing of __name but do it before SetEvent to eliminate a race. (cygthread::terminate): Accumulate list of threads to check for termination and call WaitForMultipleObjects on list rather than waiting for each thread individually. * sigproc.cc (subproc_init): Zap hwait_subproc thread handle since it is no longer used.2002-10-13 Christopher Faylor <cgf@redhat.com> * spawn.cc (spawn_guts): Fix so that cygthread::terminate is *really* called only for exec.2002-10-13 Christopher Faylor <cgf@redhat.com> * cygthread.cc (cygthread::stub): Don't zero __name here. That introduces a race.2002-10-13 Christopher Faylor <cgf@redhat.com> * include/cygwin/version.h: Bump DLL minor number.2002-10-13 Christopher Faylor <cgf@redhat.com> * cygthread.cc (cygthread::stub): Don't create event for long-running threads. Initialize thread_sync event here which is used to Suspend using an event rather than relying on SuspendThread/ResumeThread. (cygthread::init): Save handle to runner thread for future termination. (cygthread::cygthread): Only resume thread when it is actually suspended. Otherwise signal thread completion event. (cygthread::terminate): Forcibly terminate runner thread and any helper threads. Call DisableThreadLibrary calls if execing. * cygthread.h (cygthread::thread_sync): Declare. * dcrt0.cc (do_exit): Eliminate calls to obsolete window_terminate and shared_terminate. * exceptions.cc (events_terminate): Don't bother closing title_mutex since it is going away anyway. * pinfo.cc (_pinfo::exit): Call cygthread::terminate to ensure that threads are shut down before process exit or otherwise strange races seem to occur. * shared.cc (shared_terminate): Eliminate. * shared.h (shared_terminate): Eliminate declaration. * winsup.h (window_terminate): Eliminate declaration. * spawn.cc (spawn_guts): Call cygthread::terminate early in process if execing. Call DisableThreadLibrary calls if execing. * window.cc (Winmain): Call ExitThread to force exit. (window_terminate): Eliminate. * dcrt0.cc (do_exit): Track exit state more closely.2002-10-10 Christopher Faylor <cgf@redhat.com> * window.cc (gethwnd): Use SetThreadPriority method.2002-10-10 Christopher Faylor <cgf@redhat.com> * Makefile.in (new-cygwin1.dll): Reorganize library order. * dcrt0.cc (do_exit): Move thread stuff after vfork stuff or threads are terminated during vfork. * sigproc.cc (proc_terminate): Grab proc lock prior to signalling subproc thread exit to avoid an extra "wait-for-thread-to-exit".2002-10-09 Christopher Faylor <cgf@redhat.com> * cygthread.cc (cygthread::stub): Don't create an event for "cygself" threads. Assume that they exit via an ExitThread call. * cygthread.h (cygthread::SetThreadPriority): New function. (cygthread::zap_h): New function. * dcrt0.cc (do_exit): Move cygthread::terminate earlier and establish exit_state guard. * fhandler.h (fhandler_tty_master::output_thread): Delete. * fhandler_tty.cc (fhandler_tty_master::init): Set priority for threads via method. Zap handles when done. Don't treat process_output specially. (process_output): Call ExitThread directly. (fhandler_tty_master::fixup_after_fork): Don't worry about output_thread. (fhandler_tty_master::fixup_after_exec): Ditto. * sigproc.cc (proc_terminate): Don't detach from hwait_subproc. Just let it exit. (sigproc_init): Close thread handle after initialization. (wait_sig): Use GetCurrentThread() as SetThreadPriority call rather than *event* handle. Call ExitThread directly on termination. (wait_subproc): Call ExitThread directly on termination. * tty.cc (tty_list::terminate): Don't attempt to detach from output_thread.2002-10-08 Christopher Faylor <cgf@redhat.com> * cygheap.cc (dup_now): Make fatal error a little more informative. (cygheap_setup_for_child): Detect when default size of shared region is less than the current size and allocate that much. (_cbrk): Just return NULL on inability to allocate. (_cmalloc): Ditto. * cygheap.h (CYGHEAPSIZE): Change size to reflect newer, tinier fhandler sizes. * spawn.cc (av::error): New element, reflects potential errno from cmalloc. (av::~av): Don't free NULL pointers. (av::replace0_maybe): Detect out-of-memory conditions. (av::dup_maybe): Ditto. (av::dup_all): Ditto. (av::unshift): Ditto. (spawn_guts): Set errno and return if argv creation ran into problems. * fhandler.h (fhandler_union): Change member names to something safer. * fhandler_console.cc (fhandler_console::get_tty_stuff): Always set fhandler_console::dev_state regardless of whether shared region is initialized. * cygthread.cc (cygthread::runner): Use ExitThread rather than return (planning for future).2002-10-08 Christopher Faylor <cgf@redhat.com> * fhandler.h (dev_console): New class. (fhandler_console::dev_state): New class element. (fhandler_console::mouse_aware): Use dev_state element. (fhandler_console::get_tty_stuff): Declare new function. * fhandler_console.cc: Use dev_state fhandler_console element, throughout. (fhandler_console::get_tty_stuff): Move to fhandler_console class. Incorporate dev_console information. Move constructor stuff here.2002-10-07 Christopher Faylor <cgf@redhat.com> * dtable.cc (dtable::init_std_file_from_handle): Try to mimic standard open behavior with files redirected from stdin/stdout/stderr, i.e., fmode settings take precedence over mount settings.2002-10-07 Christopher Faylor <cgf@redhat.com> * dtable.cc (unknown_file): New variable. (dtable::init_std_file_from_handle): Don't set binmode if we couldn't determine the actual file name on stdin/stdout/stderr. (handle_to_fn): Return unknown_file when can't determine filename.2002-10-07 Christopher Faylor <cgf@redhat.com> * dcrt0.cc (do_exit): Call DisableThreadLibraryCalls since we don't need to track thread detaches. * init.cc (dll_entry): Reorganize slightly. Fix api_fatal message.2002-10-05 Christopher Faylor <cgf@redhat.com> * cygthread.cc (cygthread::stub): Very minor cleanup. (cygthread::stub): Report overflows in cygwin thread pool when DEBUGGING is on and special environment variable is not set. (cygthread::terminate): Set event only when event actually exists. * exceptions.cc (signal_exit): Set priority of main thread to low before setting current thread to high.2002-10-01 Robert Collins <rbtcollins@hotmail.com> * thread.cc (pthread_key::keys): Copy on fork. Add a comment explaining why. (pthreadNull::_instance): Copy on fork. Absolutely no state exists in pthreadNull.2002-09-30 Conrad Scott <conrad.scott@dsl.pipex.com> * cygserver_transport_pipes.cc (transport_layer_pipes::accept): Remove trailing \n from debug_printf.2002-09-30 Christopher Faylor <cgf@redhat.com> * thread.cc (pthread_mutex::initMutex): Remove \n from api_fatal.2002-09-30 Christopher Faylor <cgf@redhat.com> * thread.cc (pthread::precreate): Use explicit "no inherit" option when creating mutex. (pthread_mutex::nativeMutex::init): Ditto.2002-09-30 Christopher Faylor <cgf@redhat.com> * thread.cc (pthread_key::keys): Do not copy on fork. (pthread_mutex::mutexInitializationLock): Ditto. (pthreadNull::_instance): Ditto.2002-09-30 Christopher Faylor <cgf@redhat.com> * exceptions.cc (unused_sig_wrapper): Still need additional level of indirection when setting errno.2002-09-30 Robert Collins <rbtcollins@hotmail.com> * thread.cc (pthread_mutex::initMutex): Use the wrapper init call. (pthread_mutex::nativeMutex::init): Implement. (pthread_mutex::nativeMutex::lock): Ditto. (pthread_mutex::nativeMutex::unlock): Ditto. (pthread_mutex::init): Use the wrapper lock and unlockcalls. * thread.h (pthread_mutex): Move mutexInitializationLock into a nativeMutex wrapper class.2002-09-30 Christopher Faylor <cgf@redhat.com> Remove \n from calls to strace class printfs throughout.2002-09-30 Christopher Faylor <cgf@redhat.com> * exceptions.cc (unused_sig_wrapper): Accommodate newer compilers.2002-09-29 Christopher Faylor <cgf@redhat.com> * security.cc (allow_ntsec): Default to zero. * environ.cc (environ_init): Set allow_ntsec to TRUE by default, assuming OS allows it.2002-09-29 Christopher Faylor <cgf@redhat.com> * environ.cc (environ_init): Avoid a compiler warning. * path.cc (path_conv::check): Ditto. * path.h (path_conv::operator int): Ditto. * regex/engine.c: Ditto throughout. * regex/regcomp.c: Ditto throughout. * regex/regexec.c: Ditto throughout.2002-09-29 Christopher Faylor <cgf@redhat.com> * thread.cc: Use "%E" in *_printf throughout rather than calling GetLastError. GNUify comments. (__pthread_mutex_lock): Don't return error on EBUSY since that just means that the mutex has already been initialized.2002-09-30 Robert Collins <rbtcollins@hotmail.com> * pthread.cc (pthread_mutex_init): Use new pthread_mutex::init. * thread.cc: Change __pthread_mutex_init to pthread_mutex::init throughout. (MTinterface::Init): Initialise pthread_mutex support. (pthread_mutex::mutexInitializationLock): Instantiate. (pthread_mutex::initMutex): New method. (__pthread_cond_dowait): Don't dereference untrusted pointers. Use the new pthread_mutex::init method. (__pthread_condattr_init): Don't dereference untrusted pointers. (__pthread_mutex_init): Rename to pthread_mutex::init. Lock and release mutexInitializationLock to prevent races on mutex initialisation. * thread.h (pthread_mutex::initMutex): New method, initialise pthread_mutex supporting state on process initialisation. (pthread_mutex::init): Initialise a single mutex. (pthread_mutex::mutexInitializationLock): A win32 mutex for syncronising pthread mutex initialisation. (__pthread_mutex_init): Remove this.2002-09-28 Christopher Faylor <cgf@redhat.com> * thread.h (verifyable_object:~verifyable_object): Make virtual.2002-09-28 Christopher Faylor <cgf@redhat.com> * cygthread.h (cygthread::terminate): Declare new function. (cygthread::initialized): Change to 'int'. * cygthread.cc (cygthread::stub): Exit thread if initialized < 0. (cygthread::new): Ditto. (cygthread::runner): Ditto. Set initialized using xor to preserve sign. (cygthread::terminate): New function. * dcrt0.cc (do_exit): Call cygthread::terminate.2002-09-27 Robert Collins <rbtcollins@hotmail.com> * thread.cc (pthread_key::run_destructor): Run_destructor is not const as it needs to set the key value. * thread.h (pthread_key::run_destructor): Ditto.2002-09-27 Robert Collins <rbtcollins@hotmail.com>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -