[newlib-cygwin] Cygwin: POSIX msg queues: create fhandler with object name

Corinna Vinschen corinna@sourceware.org
Fri May 21 13:34:17 GMT 2021


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=65cb82839aa6a68de19c189d778ac5ca2ddc20ea

commit 65cb82839aa6a68de19c189d778ac5ca2ddc20ea
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Fri May 21 13:42:40 2021 +0200

    Cygwin: POSIX msg queues: create fhandler with object name
    
    build_fh_dev can take the POSIX object name as parameter anyway,
    so use that and drop from mqinfo call.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/fhandler.h         | 2 +-
 winsup/cygwin/fhandler_mqueue.cc | 7 +++----
 winsup/cygwin/posix_ipc.cc       | 8 ++++----
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 38533974c..b0618963d 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -3116,7 +3116,7 @@ public:
 
   char *get_proc_fd_name (char *);
 
-  struct mq_info *mqinfo (const char *, int8_t *, HANDLE, size_t, mode_t, int);
+  struct mq_info *mqinfo (int8_t *, HANDLE, size_t, mode_t, int);
   struct mq_info *mqinfo () { return &mqi; }
 
   void fixup_after_fork (HANDLE);
diff --git a/winsup/cygwin/fhandler_mqueue.cc b/winsup/cygwin/fhandler_mqueue.cc
index dc10a3671..d068d2ad5 100644
--- a/winsup/cygwin/fhandler_mqueue.cc
+++ b/winsup/cygwin/fhandler_mqueue.cc
@@ -20,22 +20,21 @@ fhandler_mqueue::fhandler_mqueue () :
 }
 
 struct mq_info *
-fhandler_mqueue::mqinfo (const char *name, int8_t *mptr, HANDLE sect,
-			 size_t size, mode_t mode, int flags)
+fhandler_mqueue::mqinfo (int8_t *mptr, HANDLE sect, size_t size, mode_t mode,
+			 int flags)
 {
   WCHAR buf[MAX_PATH];
   UNICODE_STRING uname;
   OBJECT_ATTRIBUTES attr;
   NTSTATUS status;
 
-  set_name (name);
   mqinfo ()->mqi_hdr = (struct mq_hdr *) mptr;
   mqinfo ()->mqi_sect = sect;
   mqinfo ()->mqi_sectsize = size;
   mqinfo ()->mqi_mode = mode;
   mqinfo ()->mqi_flags = flags;
 
-  __small_swprintf (buf, L"mqueue/mtx%s", name);
+  __small_swprintf (buf, L"mqueue/mtx%s", get_name ());
   RtlInitUnicodeString (&uname, buf);
   InitializeObjectAttributes (&attr, &uname, OBJ_OPENIF | OBJ_CASE_INSENSITIVE,
                               get_shared_parent_dir (),
diff --git a/winsup/cygwin/posix_ipc.cc b/winsup/cygwin/posix_ipc.cc
index 056fa966a..f82f146bd 100644
--- a/winsup/cygwin/posix_ipc.cc
+++ b/winsup/cygwin/posix_ipc.cc
@@ -413,12 +413,12 @@ mq_open (const char *name, int oflag, ...)
 
 	  if (fdm < 0)
 	    __leave;
-	  fh = (fhandler_mqueue *) build_fh_dev (*mqueue_dev);
+	  fh = (fhandler_mqueue *) build_fh_dev (*mqueue_dev, name);
 	  if (!fh)
 	    __leave;
 	  fdm = fh;
 
-	  mqinfo = fh->mqinfo (name, mptr, secth, filesize, mode, nonblock);
+	  mqinfo = fh->mqinfo (mptr, secth, filesize, mode, nonblock);
 	  if (!mqinfo)
 	    __leave;
 
@@ -506,12 +506,12 @@ mq_open (const char *name, int oflag, ...)
 
       if (fdm < 0)
 	__leave;
-      fh = (fhandler_mqueue *) build_fh_dev (*mqueue_dev);
+      fh = (fhandler_mqueue *) build_fh_dev (*mqueue_dev, name);
       if (!fh)
 	__leave;
       fdm = fh;
 
-      mqinfo = fh->mqinfo (name, mptr, secth, filesize, statbuff.st_mode,
+      mqinfo = fh->mqinfo (mptr, secth, filesize, statbuff.st_mode,
 			   nonblock);
       if (!mqinfo)
 	__leave;


More information about the Cygwin-cvs mailing list