diff options
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 39e1e7573..2a639cda8 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -38,7 +38,7 @@ details. */ /* Used for fhandler_pipe::create. Use an available flag which will never be used in Cygwin for this function. */ -#define PIPE_ADD_PID FILE_FLAG_FIRST_PIPE_INSTANCE +#define PIPE_ADD_PID PIPE_ACCESS_OUTBOUND extern const char *windows_device_names[]; extern struct __cygwin_perfile *perfile_table; @@ -182,8 +182,11 @@ class fhandler_base HANDLE read_state; public: - long inc_refcnt () {return InterlockedIncrement (&_refcnt);} - long dec_refcnt () {return InterlockedDecrement (&_refcnt);} + long refcnt(long i = 0) + { + debug_only_printf ("%p, %s, i %d, refcnt %ld", this, get_name (), i, _refcnt + i); + return _refcnt += i; + } class fhandler_base *archetype; int usecount; @@ -558,7 +561,7 @@ class fhandler_socket: public fhandler_base int open (int flags, mode_t mode = 0); void __stdcall read (void *ptr, size_t& len) __attribute__ ((regparm (3))); ssize_t __stdcall readv (const struct iovec *, int iovcnt, ssize_t tot = -1); - inline ssize_t recv_internal (struct _WSAMSG *wsamsg, bool use_recvmsg) __attribute__ ((regparm (3))); + inline ssize_t recv_internal (struct _WSAMSG *wsamsg); ssize_t recvfrom (void *ptr, size_t len, int flags, struct sockaddr *from, int *fromlen); ssize_t recvmsg (struct msghdr *msg, int flags); @@ -1721,6 +1724,7 @@ class fhandler_dev_clipboard: public fhandler_base _off64_t pos; void *membuffer; size_t msize; + bool eof; public: fhandler_dev_clipboard (); int is_windows () { return 1; } |