This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH draft 1/6] Cygwin: fhandler_pipe: derive from fhandler_base
- From: Ken Brown <kbrown at cornell dot edu>
- To: "cygwin-patches at cygwin dot com" <cygwin-patches at cygwin dot com>
- Date: Sun, 26 May 2019 15:10:36 +0000
- Subject: [PATCH draft 1/6] Cygwin: fhandler_pipe: derive from fhandler_base
- References: <20190526151019.2187-1-kbrown@cornell.edu>
Make minimal changes so that the build still succeeds.
Previously fhandler_pipe was derived from fhandler_base_overlapped,
which we are going to remove in a future commit.
---
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.17.0