summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/spawn.cc
Commit message (Collapse)AuthorAgeFilesLines
* No longer support "Interact with desktop"Corinna Vinschen2016-06-251-28/+20
| | | | | | | | Always create child user window station and desktop, unless only spawning with restricted token. Also fix formatting of a few comments in child_info_spawn::worker. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop has_program_compatibility_assistant flagCorinna Vinschen2016-06-241-32/+28
|
* Switching the Cygwin DLL to LGPLv3+, dropping commercial buyout optioncygwin-2_5_2-releaseCorinna Vinschen2016-06-231-3/+0
| | | | | | | | | | | | | | Bump GPLv2+ to GPLv3+ for some files, clarify BSD 2-clause. Everything else stays under GPLv3+. New Linking Exception exempts resulting executables from LGPLv3 section 4. Add CONTRIBUTORS file to keep track of licensing. Remove 'Copyright Red Hat Inc' comments. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove remnants of never-defined MALLOC_DEBUG and NEWVFORKPeter Foley2016-04-011-18/+0
| | | | | | | | | | | | | | | | | | | | MALLOC_DEBUG and NEWVFORK haven't been defined since 2008 (46162537516c5e5fbb). Remove all references to tem. winsup/cygwin/ChangeLog: acconfig.h: delete dcrt0.cc (dll_crt0_1): remove NEWVFORK code. dcrt0.cc (do_exit): ditto. debug.h: ditto. dtable.h: ditto. winsup.h: ditto. globals.cc: ditto. malloc_wrapper.cc: ditto. malloc_wrapper.cc (malloc_init): ditto. spawn.cc (spawnve): ditto. syscalls.cc (setsid): ditto. Signed-off-by: Peter Foley <pefoley2@pefoley.com>
* Propagate correct Windows error if executable can't be openedCorinna Vinschen2016-03-171-0/+1
| | | | | | * spawn.cc (av::setup): Set last Win32 error if NtOpenFile fails. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Avoid name change if script is called via symlink from execvp et al.Corinna Vinschen2015-03-171-6/+6
| | | | | | | * spawn.cc (find_exec): Fix a name change in case of a symlink which can be opened as is. Signed-off-by: Corinna Vinschen <vinschen@redhat.com>
* * spawn.cc (find_exec): Extend preceeding comment to explain moreCorinna Vinschen2015-02-161-2/+16
| | | | | detailed what's going on in this function. Overwrite potential symlink target with original path.
* * path.h (path_conv): Make path_flags private. Rename known_suffix toCorinna Vinschen2015-02-151-9/+9
| | | | | | | | | | | | | | suffix and make private. Rename normalized_path to posix_path and make privtae. Accommodate name changes throughout in path_conv methods. (path_conv::known_suffix): New method. Use throughout instead of accessing suffix directly. (path_conv::get_win32): Constify. (path_conv::get_posix): New method to read posix_path. Use throughout instead of accessing normalized_path directly. (path_conv::set_posix): Rename from set_normalized_path. Accommodate name change throughout. * spawn.cc (find_exec): Return POSIX path, not Win32 path.
* * dlfcn.cc (check_path_access): Drop FE_NATIVE from find_exec call.Corinna Vinschen2015-02-111-77/+37
| | | | | | | | | | | | | | | | | | | | | (gfpod_helper): Drop equality sign from environment variable name in call to check_path_access. * exec.cc (execlp): Drop equality sign from environment variable name in call to find_exec. (execvp): Ditto. (execvpe): Ditto. * path.h (enum fe_types): Drop FE_NATIVE. (find_exec): Rename third paramter in declaration from search. Drop equality sign from default value. * spawn.cc (perhaps_suffix): Add PC_POSIX to path_conv::check call. (find_exec): Simplify function. Iterate over POSIX pathlist rather than Windows pathlist. Drop handling of FE_NATIVE flag. Always fill posix path of incoming path_conv buf, unless FE_NNF flag is given. (av::setup): Drop equality sign from environment variable name in call to find_exec. Call unshift with normalized_path. * winf.cc (av::unshift): Drop conv parameter and code converting Windows to POSIX path. * winf.h (av::unshift): Accommodate prototype.
* Revert accidental checkinCorinna Vinschen2014-12-021-1/+0
|
* * flock.cc (create_lock_in_parent): Make lf_obj handle inheritable.Corinna Vinschen2014-12-021-0/+1
| | | | | | | Explain why. (lockf_t::create_lock_obj): Use FALSE, rather than 0 for BOOL argument. (lockf_t::del_lock_obj): Check if NtSetEvent succeeded and print system message if not.
* * autoload.cc (CreateEnvironmentBlock): Import.Corinna Vinschen2014-12-021-1/+7
| | | | | | | | | | | | | | (DestroyEnvironmentBlock): Import. * environ.cc (env_compare): New static bsearch comparison function. (build_env): Add parameter taking a user token. If token is non-NULL, fetch user's default Windows environment and merge it into the resulting environment. Explain what we do in preceeding comment. * environ,h (build_env): Align prototype to above change. * external.cc (create_winenv): Call build_env with NULL token. * spawn.cc (child_info_spawn::worker): When spawning new process under another user account, call build_env with new token to allow merging user's default Windows environment. * winlean.h (_USERENV_): Define to override dllimport.
* * spawn.cc (child_info_spawn::worker): Fix formatting.Corinna Vinschen2014-12-021-2/+2
|
* * Throughout, use __try/__except/__endtry blocks, rather than myfaultCorinna Vinschen2014-08-221-494/+497
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handler. * cygtls.cc (_cygtls::remove): Accommodate the fact that pathbufs has been moved from _local_storage to _cygtls. * cygtls.h (class tls_pathbuf): Add comment to hint to gendef usage of counters. Change type of counters to uint32_t for clarity. Remove _cygtls as friend class. (struct _local_storage): Move pathbufs from here... (struct _cygtls): ...to here, allowing to access it from _sigbe. (class san): Only define on 32 bit. Remove errno, _c_cnt and _w_cnt members. (san::setup): Drop parameter. Don't initialize removed members. (san::leave): Don't set removed members. (class myfault): Only define on 32 bit. (myfault::faulted): Only keep implementation not taking any parameter. Drop argument in call to sebastian.setup. (__try/__leave/__except/__endtry): Implement to support real SEH. For now stick to SJLJ on 32 bit. * dcrt0.cc (dll_crt0_0): Drop 64 bit call to exception::install_myfault_handler. * exception.h (exception_handler): Define with EXCEPTION_DISPOSITION as return type. (PDISPATCHER_CONTEXT): Define as void * on 32 bit. Define as pointer to _DISPATCHER_CONTEXT on 64 bit. (class exception): Define separately for 32 and 64 bit. (exception::myfault): Add handler for myfault SEH handling on 64 bit. (exception::exception): Fix mangled method name to account for change in type of last parameter. (exception::install_myfault_handler): Remove. * exceptions.cc (exception::myfault_handle): Remove. (exception::myfault): New SEH handler for 64 bit. * gendef (_sigbe): Set tls_pathbuf counters to 0 explicitely when returning to the caller. * ntdll.h: Move a comment to a better place. (struct _SCOPE_TABLE): Define on 64 bit. * thread.cc (verifyable_object_isvalid): Remove gcc 4.7 workaround. * tls_pbuf.cc (tls_pbuf): Fix to accommodate new place of pathbufs. (tls_pathbuf::destroy): Change type of loop variables to uint32_t. * tls_pbuf.h (class tmp_pathbuf): Change type of buffer counters to uint32_t. Accommodate new place of pathbufs. * tlsoffsets.h: Regenerate. * tlsoffsets64.h: Regenerate.
* * spawn.cc (find_exec): Initialize err (CID 60111).Corinna Vinschen2014-06-231-1/+1
| | | | | | | | * strace.cc (strace::activate): Fix potential buffer overrun (CID 59938) * syscalls.cc (popen): Close parent pipe descriptor via fclosing fp on error to avoid resource leak (CID 59981). * thread.cc (pthread::exit): Avoid accessing cygtls member after deleting "this" (CID 60217).
* * spawn.cc (av::setup): Eat trailing whitespace on #! script.Christopher Faylor2014-05-031-0/+2
|
* Throughout, drop unnecessary explicit includes of windows header filesCorinna Vinschen2013-11-241-2/+0
| | | | | | | | | | | | included by default. * winlean.h: Add long comment to explain why we have to define certain symbols. (_NORMALIZE_): Define. (_WINNLS_): Drop definition and subsequent undef. (_WINNETWK_): Ditto. (_WINSVC_): Ditto. 2013-11-23 Eric Blake <eblake@redhat.com>
* cygwin changes:Christopher Faylor2013-08-231-11/+2
| | | | | | | | * spawn.cc (child_info_spawn): Revert previous change. Always set lpReserved2. * release/1.7.25: Change wording. doc changes: * new-features.xml (ov-new1.7.25): Change wording.
* * path.h (enum path_types): Drop definition of PATH_64BITEXEC.Corinna Vinschen2013-08-231-2/+11
| | | | | | | | | (path_conv::iscygexec32): Drop unused inline function. (path_conv::iscygexec64): Ditto. (path_conv::set_cygexec): Remove unnecessary setting of PATH_64BITEXEC. * spawn.cc (child_info_spawn::worker): Disable setting of STARTUPINFOW::lpReserved2 and STARTUPINFOW::cbReserved2 for non-Cygwin child processes. Explain why.
* cygwin directory changes:Christopher Faylor2013-07-261-2/+3
| | | | | | | | | | | | | * environ.cc (tty_is_gone): Delete. (known): Delete tty, add wincmdln. * globals.cc: Reorganize list of environment bools, remove explicit = false for slight load time optimization. (wincmdln): New global. * spawn.cc (child_info_spawn::worker): Honor wincmdln. doc directory changes: * new-features.sgml (ov-new1.7.23): Add new section. Mention wincmdln. * cygwinenv.xml: Mention wincmdln.
* * spawn.cc (child_info_spawn::worker): Reinstate using temp buffer for wideChristopher Faylor2013-07-191-2/+3
| | | | | | character command-line storage. Use wcs method to convert command line. * winf.h (lb_wcs): Delete. (linebuf::wcs): Implement new single-argument method.
* * common.din: Export GetCommandLine{A,W}.Christopher Faylor2013-07-191-20/+13
| | | | | | | | | | | | | | | | | | * kernel32.cc: Add includes needed for GetCommandLine functions. (ucmd): New function. (cygwin_GetCommandLineW): Ditto. (cygwin_GetCommandLineA): Ditto. * spawn.cc (child_info_spawn::worker): Rename one_line -> cmd. Use lb_wcs macro to generate a wide character version of the line buffer. Remove duplicate printing of command line. Don't access members of linebuf directly. * winf.h: Use pragma once. (linebuf): Make storage private. (linebuf::operator size_t): New operator. Return size of buf. (linebuf::operator wchar_t): New operator. (linebuf::wcs): New function. (lb_wcs): New macro. * include/cygwin/version.h: Bump API minor number to 268. * strfuncs.cc: Clarify descriptive file comment.
* * spawn.cc (child_info_spawn::worker): Eliminate call to newargv.set() in favorChristopher Faylor2013-06-191-159/+159
| | | | | | | | | | | | | | | | of conglomerated newargv.setup(). Let newargv.setup() decide when to call dup_all(). Only set argc and argv for cygwin processes. (av::setup): Rename from av::fixup. Accept argc and argv parameters. Fill out argv and argc here. Duplicate whole argv structure when this is a Cygwin executable. * winf.cc (linebuf::fromargv): Don't bother duplicating argv elements since they will never be used. * winf.h (av::set): Delete. (av::setup): Rename from av::fixup. Add two parameters. (av::replace0_maybe): Assign calloced to 1 rather than 'true' for clarity. (av::dup_maybe): Delete. (av::dup_all): Set calloced to show that we have duplicated all of the arguments in the list.
* * spawn.cc (child_info_spawn::worker): Eliminate wascygexec.Christopher Faylor2013-06-191-3/+1
|
* * spawn.cc (ILLEGAL_SIG_FUNC_PTR): New define.Christopher Faylor2013-05-031-11/+21
| | | | | | | | | | | | (system_call_handle): Rename from system_call_cleanup. (is_system_call): New convenience method. (system_call_handle::system_call_handle): Use ILLEGAL_SIG_FUNC_PTR rather than cast. Call sig_send here rather than in caller. Initialize oldint. (system_call_handle::arm): New function pulled from constructor. (~system_call_handle::system_call_handle): Use is_system_call(). (child_info_spawn::worker): Use system_call_handle to set up for system call early. Use arm call prior to waiting for child to properly set up signal handling. Move comment closer to code it is commenting on.
* Throughout, (mainly in fhandler*) fix remaining gcc 4.7 mismatchYaakov Selkowitz2013-05-011-4/+1
| | | | | | | | | warnings between regparm definitions and declarations. * smallprint.cc (__small_vswprintf): Conditionalize declaration and setting of l_opt for only x86_64. * spawn.cc (child_info_spawn::worker): Remove unused 'pid' variable. * thread.cc (verifyable_object_isvalid): Temporarily define as non-inline with gcc 4.7+, regardless of target.
* * spawn.cc (system_call_cleanup): Rename from pthread_cleanup. ExtendChristopher Faylor2013-04-301-26/+29
| | | | | | | | | | | functionality. (system_call_cleanup::system_call_cleanup): Set up signals like system() requires. Unblock previously-blocked signal handling. (system_call_cleanup::~system_call_cleanup): Restore signal handling after system(). (child_info_spawn::worker): Put signals on hold and use system_call_cleanup class to set and restore signals rather than doing it prior to to running the program. Remove the ill-conceived pthread_cleanup stuff.
* * Merge in cygwin-64bit-branch.Corinna Vinschen2013-04-231-35/+11
|
* * child_info.h (cygheap_exec_info::sigmask): Declare new field.Christopher Faylor2013-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * cygheap.cc (init_cygheap::find_tls): Rename threadlist_ix -> ix. Only take one pass through thread list, looking for eligible threads to signal. Set a new param indicating that function has found a sigwait* mask. * cygheap.h (init_cygheap::find_tls): Reflect new parameter. * dcrt0.cc (parent_sigmask): New variable. (child_info_spawn::handle_spawn): Save parent's signal mask here. (dll_crt0_1): Restore parent's signal mask to tls sigmask as appropriate. Call sig_dispatch_pending to flush signal queue when we can finally do something with signals. * exceptions.cc (sigpacket::process): Avoid attempting to handle signals if we haven't finished initializing. Rely on the fact that find_tls will do mask checking and don't do it again. Delete ill-named 'dummy' variable. * sigproc.cc (cygheap_exec_info::alloc): Save calling thread's signal mask in new sigmask field. (wait_sig): Try to debug when WFSO fails and DEBUGGING is defined. * thread.cc (pthread::set_tls_self_pointer): Make this a true automatic method rather than inexplicably relying on a thread parameter. (pthread::thread_init_wrapper): Accommodate set_tls_self_pointer change to non-static. Initialize sigmask before setting tid or suffer signal races. * ehread.h (pthread::set_tls_self_pointer): Make non-static, delete parameter.
* whitespaceChristopher Faylor2013-03-311-1/+0
|
* * spawn.cc (child_info_spawn::worker): Save and restore my_wr_proc_pipe aroundChristopher Faylor2013-03-091-5/+14
| | | | | non-execing operations to avoid handle leak seen in http://cygwin.com/ml/cygwin/2013-03/msg00152.html .
* Throughout, update copyrights to reflect dates which correspond to main-branchChristopher Faylor2013-01-211-2/+2
| | | | checkins. Regularize copyright format.
* * spawn.cc (child_info_spawn::worker): Make detection of '/c' case insensitiveChristopher Faylor2012-11-301-1/+1
| | | | when looking for cmd.exe command line.
* * cygthread.cc (cygthread::stub): Remove old, unnecessary, FIXMEd code.Christopher Faylor2012-09-141-1/+2
| | | | * spawn.cc (child_info_spawn::worker): Avoid calling close_all_files() twice.
* whitespace cleanupChristopher Faylor2012-08-161-2/+2
|
* * spawn.cc (child_info_spawn::worker): Put back a minor variation of Corinna'sChristopher Faylor2012-08-031-4/+10
| | | | test for detecting a background process when starting a non-cygwin process.
* * DevNotes: Add entry cgf-000007.Christopher Faylor2012-05-141-0/+1
| | | | | | | | | * child_info.h (child_info_spawn::parent_winpid): Declare new field. (child_info_spawn::get_parent_handle): Declare new function. * dcrt0.cc (child_info_spawn::get_parent_handle): Define new function. (child_info_spawn::handle_spawn): Recreate parent handle if possible when dynamically loaded. Don't mess with parent handle if it's NULL. * spawn.cc (child_info_spawn::worker): Set parent_winpid appropriately.
* * DevNotes: Add entry cgf-000004.Christopher Faylor2012-05-081-5/+5
| | | | | | | | * pinfo.cc (pinfo::init): Reuse shared memory if the state is marked with PID_REAPED. * spawn.cc (child_info_spawn::worker): Don't duplicate myself_pinfo into non-cygwin child. * fork.cc (frok::parent): Improve error output.
* * DevNotes: Add entry cgf-000003.Christopher Faylor2012-05-071-13/+29
| | | | | | | | | | | | | * cygheap.h (init_cygheap::pid_handle): Delete. * dcrt0.cc (child_info_spawn::handle_spawn): Keep parent open if we have execed. * pinfo.cc (pinfo::thisproc): Remove pid_handle manipulations. (pinfo::init): Don't consider a reaped process to be available. * spawn.cc (child_info_spawn::worker): Remove pid_handle manipulations. Make wr_proc_pipe and parent noninheritable when starting a program which doesn't use the Cygwin DLL. Conditionally reset wr_proc_pipe to inheritable if CreateProcess fails. Inject wr_proc_pipe handle into non-Cygwin process. Consider a non-cygwin process to be 'synced'.
* wincap.h: Rename assitant to assistant throughout. wincap.cc: Ditto.Christopher Faylor2012-04-151-11/+5
| | | | | | | | | | | | | * devices.in (exists_console): Use fhandler_console::exists () rather than raw test. * devices.cc: Regenerate. * fhandler.h (fhandler_console::exists): Define new function. * fhandler_console.cc (fhandler_console::need_invisible): Use fhandler_console::exists () rather than raw test. * spawn.cc: Rename assitant to assistant throughout. (child_info_spawn::worker): Simplify test for when to start a non-Cygwin process in its own process group. Just do it whenever we start a non-Cygwin process.
* * child_info.h (child_info::postfork): Define new function.Christopher Faylor2012-03-211-5/+3
| | | | | | | | | | | | * fork.cc (frok::parent): Call postfork to do all of the manipulation required prior to calling pinfo::remember. * pinfo.h (pinfo::set_rd_proc_pipe): Just set pinfo's rd_proc_pipe. Don't bother setting it to NULL. * sigproc.cc (child_info_spawn::wait_for_myself): Call postfork to set up myself for waiting. * spawn.cc (child_info_spawn::worker): Avoid now-unnecessary global lock. Consistently test mode rather than chtype when making wr_proc_pipe decisions. Call postfork() to set up stuff prior to pinfo::remember.
* * child_info.h: Reset magic number.Christopher Faylor2012-03-211-10/+6
| | | | | | | | | | | (child_info_spawn::wait_for_myself): Move function to sigproc.cc. * pinfo.cc (is_toplevel_proc): Delete unneeded variable. * sigproc.cc (child_info_spawn::wait_for_myself): Move function from header to here. Do all setup required to properly wait for top-level execed process to exit. * spawn.cc (child_info_spawn::worker): Attempt to properly handle _P_DETACH. Set wr_proc_pipe if top-level process even when execing. Just call wait_for_myself() to... wait for myself. Don't call cleanup twice.
* * child_info.h (CURR_CHILD_INFO_MAGIC): Reset.Christopher Faylor2012-03-201-19/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (child_info::rd_proc_pipe): Declare new field. (child_info::wr_proc_pipe): Ditto. (child_info::prefork): Declare new function, derived from previous pinfo version. * dcrt0.cc (child_info_fork::handle_fork): Close previous wr_proc_pipe when appropriate and assign new one from passed-in child_info block. (child_info_spawn::handle_spawn): Assign our wr_proc_pipe handle from passed-in child_info block. * fork.cc (child_info::prefork): Define new function. (frok::child): Clear rd_proc_pipe and wr_proc_pipe so they will not be closed by the child_info destructor. (frok::parent): Use child_info prefork handling, outside of retry loop. Set rd_proc_pipe in child's pinfo after successful CreateProcess. Eliminate postfork call. * globals.cc (my_wr_proc_pipe): Define/declare new variable. * pinfo.cc (pinfo::pending_rd_proc_pipe): Delete. (pinfo::pending_wr_proc_pipe): Ditto. (pinfo::prefork): Ditto. (pinfo::postfork): Ditto. (pinfo::postexec): Ditto. (pinfo::wait): Assume that rd_proc_pipe is set up correctly prior to call. (_pinfo::alert_parent): Replace "wr_proc_pipe" with "my_wr_proc_pipe". * pinfo.h (_pinfo::_wr_proc_pipe): Delete declaration. (_pinfo::set_rd_proc_pipe): Define new function. (pinfo::pending_rd_proc_pipe): Delete declaration. (pinfo::pending_wr_proc_pipe): Ditto. (pinfo::prefork): Ditto. (pinfo::postfork): Ditto. (pinfo::postexec): Ditto. (pinfo::wr_proc_pipe): Ditto. * sigproc.cc (child_info::child_info): Clear rd_proc_pipe and wr_proc_pipe. (child_info::cleanup): Close rd_proc_pipe and wr_proc_pipe if necessary. (child_info_fork::child_info_fork): Set forker_finished to NULL by default. (child_info_spawn::child_info_spawn): Use my_wr_proc_pipe rather than myself->wr_proc_pipe. (child_info::sync): Ditto. (child_info_spawn::cleanup): Call child_info::cleanup. * spawn.cc (child_info_spawn::worker): Remove call to myself.prefork(). Set wr_proc_pipe when execing or set up new rd_proc_pipe/wr_proc_pipe via child_info::prefork when spawning. Remove call to pinfo::postexec. Set rd_proc_pipe in child pinfo when spawning. Use my_wr_proc_pipe rather than myself->wr_proc_pipe. Remove call to postfork.
* * fork.cc (lock_signals): Move to sigproc.h.Christopher Faylor2012-03-161-23/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (lock_pthread): Ditto. (hold_everything): Ditto. (frok::parent): Call myself.prefork() just before calling CreateProcess. Call myself.postfork () on function exit. * pinfo.cc (pinfo::pending_rd_proc_pipe): Define. (pinfo::pending_wr_proc_pipe): Ditto. (_pinfo::dup_proc_pipe): Delete. (pinfo::wait): Move pipe creation into pinfo::prefork. Set pipe variables from pending_*. (_pinfo::sync_proc_pipe): Delete. (_pinfo::proc_pipe_owner): Ditto. (pinfo::prefork): Define new function. (pinfo::postfork): Ditto. (pinfo::postexec): Ditto. (_pinfo::alert_parent): Remove obsolete call to sync_proc_pipe. (_pinfo::dup_proc_pipe): Delete declaration. (_pinfo::sync_proc_pipe): Ditto. (pinfo::pending_rd_proc_pipe): Declare. (pinfo::pending_wr_proc_pipe): Ditto. (pinfo::prefork): Declare new function. (pinfo::postfork): Ditto. (pinfo::postexec): Ditto. (pinfo::wr_proc_pipe): Define new wrapper function. * sigproc.h: Include "sync.h". Move locking functions from fork to here. * spawn.cc (child_info_spawn::worker): Delete now-unneeded requirement to record orig_wr_proc_pipe. Call hold_everything prior to doing anything. Call myself.prefork() if spawning. Replace wr_proc_pipe synchronization with call to myself.postexec(). Call myself.postfork() if not execing. * sync.h: Replace #ifdef wrapper with "#pragma once".
* * pinfo.cc (_pinfo::dup_proc_pipe): Reorganize to provide more information forChristopher Faylor2012-03-071-1/+1
| | | | | | | | failing condition. (pinfo::wait): Pass name of function to dup_proc_pipe. Eliminate error check for dup_proc_pipe since it never actually returned an error. * pinfo.h (_pinfo::dup_proc_pipe): Add an argument. * spawn.cc (child_info_spawn::worker): Pass name of function to dup_proc_pipe.
* * ntdll.h (struct _PEB): Add EnvironmentUpdateCount member.Corinna Vinschen2012-02-171-16/+42
| | | | | | | * spawn.cc (child_info_spawn::worker): Speed up job recognition. Expand comment to explain every little detail and so we never forget. * wincap.h (wincaps::has_program_compatibility_assitant): New element. * wincap.cc: Implement above element throughout.
* * include/process.h: Move here from include/cygwin subdir.Corinna Vinschen2012-02-071-1/+1
| | | | | | | * exec.cc: Change include of process.h to reflect the fact that it's now back in include. * spawn.cc: Ditto. * syscalls.cc: Ditto.
* * spawn.cc (child_info_spawn::worker): Delete debugging.Christopher Faylor2012-01-111-2/+0
|
* Update copyright on all files checked in so far this year.Christopher Faylor2012-01-111-4/+6
| | | | | | | | | | | | | | | | | * fhandler.h: Use #pragma once rather than ifdef guards. (fhandler_console::tc_getpgid): Return our pgid if we have never opened a console. * fork.cc: Rearrange includes to accommodate fhandler.h use of pinfo.h. * sigproc.cc: Ditto. * spawn.cc: Ditto. (child_info_spawn::worker): Query myself->pgid rather than calling expensive function. * thread.h: Use #pragma once rather than ifdef guards. * pinfo.h: Use #pragma once rather than ifdef guards. (pinfo::remember): Don't define if sigproc.h has not been included. (pinfo::reattach): Ditto. * sigproc.h: Use #pragma once rather than ifdef guards. Use different test to see if pinfo.h has been included.
* * include/cygwin/process.h: Move here from newlib.Corinna Vinschen2012-01-091-2/+2
| | | | | | | * exec.cc: Change include of process.h to reflect the fact that it's now in the include/cygwin subfolder. * spawn.cc: Ditto. * syscalls.cc: Ditto.