[PATCH draft v2 1/6] Cygwin: fhandler_pipe: derive from fhandler_base

Ken Brown kbrown@cornell.edu
Fri Jun 7 18:05:00 GMT 2019


Previously fhandler_pipe was derived from fhandler_base_overlapped,
which we are going to remove in a future commit.  Make minimal changes
so that the build still succeeds.
---
 winsup/cygwin/fhandler.h       |  5 ++---
 winsup/cygwin/fhandler_pipe.cc | 11 +++++------
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index f244f3486..bdfe4a272 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -1187,14 +1187,14 @@ public:
   friend DWORD WINAPI flush_async_io (void *);
 };
 
-class fhandler_pipe: public fhandler_base_overlapped
+class fhandler_pipe: public fhandler_base
 {
 private:
   pid_t popen_pid;
+  size_t max_atomic_write;
 public:
   fhandler_pipe ();
 
-
   bool ispipe() const { return true; }
 
   void set_popen_pid (pid_t pid) {popen_pid = pid;}
@@ -1221,7 +1221,6 @@ public:
   {
     x->pc.free_strings ();
     *reinterpret_cast<fhandler_pipe *> (x) = *this;
-    reinterpret_cast<fhandler_pipe *> (x)->atomic_write_buf = NULL;
     x->reset (this);
   }
 
diff --git a/winsup/cygwin/fhandler_pipe.cc b/winsup/cygwin/fhandler_pipe.cc
index edbaded68..2ea69f8ed 100644
--- a/winsup/cygwin/fhandler_pipe.cc
+++ b/winsup/cygwin/fhandler_pipe.cc
@@ -21,7 +21,7 @@ details. */
 #include "shared_info.h"
 
 fhandler_pipe::fhandler_pipe ()
-  : fhandler_base_overlapped (), popen_pid (0)
+  : fhandler_base (), popen_pid (0)
 {
   max_atomic_write = DEFAULT_PIPEBUFSIZE;
   need_fork_fixup (true);
@@ -54,9 +54,8 @@ fhandler_pipe::init (HANDLE f, DWORD a, mode_t mode, int64_t uniq_id)
   set_ino (uniq_id);
   set_unique_id (uniq_id | !!(mode & GENERIC_WRITE));
   if (opened_properly)
-    setup_overlapped ();
-  else
-    destroy_overlapped ();
+    /* ... */
+    ;
   return 1;
 }
 
@@ -192,7 +191,7 @@ fhandler_pipe::dup (fhandler_base *child, int flags)
   ftp->set_popen_pid (0);
 
   int res;
-  if (get_handle () && fhandler_base_overlapped::dup (child, flags))
+  if (get_handle () && fhandler_base::dup (child, flags))
     res = -1;
   else
     res = 0;
@@ -359,7 +358,7 @@ fhandler_pipe::create (fhandler_pipe *fhs[2], unsigned psize, int mode)
   int res = -1;
   int64_t unique_id;
 
-  int ret = create (sa, &r, &w, psize, NULL, FILE_FLAG_OVERLAPPED, &unique_id);
+  int ret = create (sa, &r, &w, psize, NULL, 0, &unique_id);
   if (ret)
     __seterrno_from_win_error (ret);
   else if ((fhs[0] = (fhandler_pipe *) build_fh_dev (*piper_dev)) == NULL)
-- 
2.21.0



More information about the Cygwin-patches mailing list