Cygwin: pipe, fifo: Move query_hdl and hdl_cnt_mtx to fhandler_pipe.
- query_hdl and hdl_cnt_mtx are moved from fhandler_pipe_fifo to fhandler_pipe. Then reader_closed() is changed to virtual and overridden in fhandler_pipe.
This commit is contained in:
parent
199482654b
commit
9814cfd8f6
|
@ -1175,26 +1175,13 @@ class fhandler_pipe_fifo: public fhandler_base
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
size_t pipe_buf_size;
|
size_t pipe_buf_size;
|
||||||
HANDLE query_hdl;
|
|
||||||
HANDLE hdl_cnt_mtx;
|
|
||||||
virtual void release_select_sem (const char *) {};
|
virtual void release_select_sem (const char *) {};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
fhandler_pipe_fifo ();
|
fhandler_pipe_fifo ();
|
||||||
|
|
||||||
HANDLE get_query_handle () const { return query_hdl; }
|
virtual bool reader_closed () { return false; };
|
||||||
void close_query_handle ()
|
|
||||||
{
|
|
||||||
if (query_hdl)
|
|
||||||
{
|
|
||||||
CloseHandle (query_hdl);
|
|
||||||
query_hdl = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool reader_closed ();
|
|
||||||
|
|
||||||
ssize_t __reg3 raw_write (const void *ptr, size_t len);
|
ssize_t __reg3 raw_write (const void *ptr, size_t len);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class fhandler_pipe: public fhandler_pipe_fifo
|
class fhandler_pipe: public fhandler_pipe_fifo
|
||||||
|
@ -1202,6 +1189,8 @@ class fhandler_pipe: public fhandler_pipe_fifo
|
||||||
private:
|
private:
|
||||||
HANDLE read_mtx;
|
HANDLE read_mtx;
|
||||||
pid_t popen_pid;
|
pid_t popen_pid;
|
||||||
|
HANDLE query_hdl;
|
||||||
|
HANDLE hdl_cnt_mtx;
|
||||||
void release_select_sem (const char *);
|
void release_select_sem (const char *);
|
||||||
public:
|
public:
|
||||||
fhandler_pipe ();
|
fhandler_pipe ();
|
||||||
|
@ -1250,6 +1239,16 @@ public:
|
||||||
return fh;
|
return fh;
|
||||||
}
|
}
|
||||||
void set_pipe_non_blocking (bool nonblocking);
|
void set_pipe_non_blocking (bool nonblocking);
|
||||||
|
HANDLE get_query_handle () const { return query_hdl; }
|
||||||
|
void close_query_handle ()
|
||||||
|
{
|
||||||
|
if (query_hdl)
|
||||||
|
{
|
||||||
|
CloseHandle (query_hdl);
|
||||||
|
query_hdl = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool reader_closed ();
|
||||||
};
|
};
|
||||||
|
|
||||||
#define CYGWIN_FIFO_PIPE_NAME_LEN 47
|
#define CYGWIN_FIFO_PIPE_NAME_LEN 47
|
||||||
|
|
|
@ -393,7 +393,7 @@ fhandler_pipe::raw_read (void *ptr, size_t& len)
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
fhandler_pipe_fifo::reader_closed ()
|
fhandler_pipe::reader_closed ()
|
||||||
{
|
{
|
||||||
if (!query_hdl)
|
if (!query_hdl)
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue