summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-08-19 14:56:48 +0000
committerChristopher Faylor <me@cgf.cx>2005-08-19 14:56:48 +0000
commitbabc4e5424c9c850d6e7111f98edc40f5282c507 (patch)
tree92d9801b3252e58b67561cb6114a1fec47878416 /winsup/cygwin
parent4fa0a3986528b8a68956edeb96de85e3df68fe5b (diff)
downloadcygnal-babc4e5424c9c850d6e7111f98edc40f5282c507.tar.gz
cygnal-babc4e5424c9c850d6e7111f98edc40f5282c507.tar.bz2
cygnal-babc4e5424c9c850d6e7111f98edc40f5282c507.zip
* winsup.h (create_pipe): Declare new function.
(CreatePipe): New define. * miscfuncs.cc (create_pipe): Define new function.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/miscfuncs.cc14
-rw-r--r--winsup/cygwin/winsup.h4
3 files changed, 24 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 009e291b7..19092a3e7 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2005-08-19 Christopher Faylor <cgf@timesys.com>
+
+ * winsup.h (create_pipe): Declare new function.
+ (CreatePipe): New define.
+ * miscfuncs.cc (create_pipe): Define new function.
+
2005-08-18 Christopher Faylor <cgf@timesys.com>
* fhandler.h (fhandler_tty_common::lseek): Declare new method.
diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc
index 18e8bb103..26686bd2b 100644
--- a/winsup/cygwin/miscfuncs.cc
+++ b/winsup/cygwin/miscfuncs.cc
@@ -347,3 +347,17 @@ nice_to_winprio (int &nice)
prio = NORMAL_PRIORITY_CLASS;
return prio;
}
+
+#undef CreatePipe
+bool
+create_pipe (PHANDLE hr,PHANDLE hw, LPSECURITY_ATTRIBUTES sa, DWORD n)
+{
+ for (int i = 0; i < 10; i++)
+ if (CreatePipe (hr, hw, sa, n))
+ return true;
+ else if (GetLastError () == ERROR_PIPE_BUSY && i < 9)
+ Sleep (10);
+ else
+ break;
+ return false;
+}
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h
index fdc8566d7..2bc40b170 100644
--- a/winsup/cygwin/winsup.h
+++ b/winsup/cygwin/winsup.h
@@ -308,6 +308,10 @@ size_t getshmlba ();
int winprio_to_nice (DWORD) __attribute__ ((regparm (1)));
DWORD nice_to_winprio (int &) __attribute__ ((regparm (1)));
+bool __stdcall create_pipe (PHANDLE hr, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD)
+ __attribute__ ((regparm (3)));
+#define CreatePipe create_pipe
+
/**************************** Exports ******************************/
extern "C" {