Index: cygwin/environ.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/environ.cc,v retrieving revision 1.209 diff -u -p -r1.209 environ.cc --- cygwin/environ.cc 24 Nov 2013 12:13:33 -0000 1.209 +++ cygwin/environ.cc 24 Dec 2013 15:54:09 -0000 @@ -130,6 +130,7 @@ static struct parse_thing {"export", {&export_settings}, setbool, NULL, {{false}, {true}}}, {"glob", {func: glob_init}, isfunc, NULL, {{0}, {s: "normal"}}}, {"pipe_byte", {&pipe_byte}, setbool, NULL, {{false}, {true}}}, + {"pipe_nooverlap", {&pipe_nooverlap}, setbool, NULL, {{false}, {true}}}, {"proc_retry", {func: set_proc_retry}, isfunc, NULL, {{0}, {5}}}, {"reset_com", {&reset_com}, setbool, NULL, {{false}, {true}}}, {"wincmdln", {&wincmdln}, setbool, NULL, {{false}, {true}}}, Index: cygwin/globals.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/globals.cc,v retrieving revision 1.55 diff -u -p -r1.55 globals.cc --- cygwin/globals.cc 9 Dec 2013 20:32:24 -0000 1.55 +++ cygwin/globals.cc 24 Dec 2013 15:54:09 -0000 @@ -72,6 +72,7 @@ bool detect_bloda; bool dos_file_warning = true; bool ignore_case_with_glob; bool pipe_byte; +bool pipe_nooverlap; bool reset_com; bool wincmdln; winsym_t allow_winsymlinks = WSYM_sysfile; Index: cygwin/pipe.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/pipe.cc,v retrieving revision 1.148 diff -u -p -r1.148 pipe.cc --- cygwin/pipe.cc 1 May 2013 01:20:37 -0000 1.148 +++ cygwin/pipe.cc 24 Dec 2013 15:54:09 -0000 @@ -342,7 +342,8 @@ fhandler_pipe::create (fhandler_pipe *fh SECURITY_ATTRIBUTES *sa = sec_none_cloexec (mode); int res = -1; - int ret = create (sa, &r, &w, psize, NULL, FILE_FLAG_OVERLAPPED); + int ret = create (sa, &r, &w, psize, NULL, + pipe_nooverlap ? 0 : FILE_FLAG_OVERLAPPED); if (ret) __seterrno_from_win_error (ret); else if ((fhs[0] = (fhandler_pipe *) build_fh_dev (*piper_dev)) == NULL) Index: doc/cygwinenv.xml =================================================================== RCS file: /cvs/src/src/winsup/doc/cygwinenv.xml,v retrieving revision 1.4 diff -u -p -r1.4 cygwinenv.xml --- doc/cygwinenv.xml 26 Jul 2013 17:27:59 -0000 1.4 +++ doc/cygwinenv.xml 24 Dec 2013 15:54:09 -0000 @@ -68,6 +68,11 @@ message mode. +(no)pipe_nooverlap - causes Cygwin to open pipes in non-overlapped mode by default, rather +than overlapped mode. Useful for when running a Win32 program that doesn't expect an overlapped pipe. + + + proc_retry:n - causes fork() and exec*() to retry n times when a child process fails due to certain windows-specific errors. These errors usually occur when