[gimp] app: add log output when attaching/detaching shared memory



commit 74c01d7a10f323a650d2bbd36b3e39b2d17fa278
Author: Michael Natterer <mitch gimp org>
Date:   Wed Feb 10 19:24:40 2010 +0100

    app: add log output when attaching/detaching shared memory
    
    Also put the call to shmdt() out of the IPC_RMID_DEFERRED_RELEASE ifdef.

 app/gimp-log.c              |    3 ++-
 app/gimp-log.h              |    4 +++-
 app/plug-in/gimppluginshm.c |   14 ++++++++++----
 3 files changed, 15 insertions(+), 6 deletions(-)
---
diff --git a/app/gimp-log.c b/app/gimp-log.c
index 4820aa3..6ccb995 100644
--- a/app/gimp-log.c
+++ b/app/gimp-log.c
@@ -48,7 +48,8 @@ gimp_log_init (void)
         { "shadow-tiles",       GIMP_LOG_SHADOW_TILES       },
         { "scale",              GIMP_LOG_SCALE              },
         { "wm",                 GIMP_LOG_WM                 },
-        { "floating-selection", GIMP_LOG_FLOATING_SELECTION }
+        { "floating-selection", GIMP_LOG_FLOATING_SELECTION },
+        { "shm",                GIMP_LOG_SHM                }
       };
 
       /*  g_parse_debug_string() has special treatment of the string 'help',
diff --git a/app/gimp-log.h b/app/gimp-log.h
index 8c19d96..01ce4d4 100644
--- a/app/gimp-log.h
+++ b/app/gimp-log.h
@@ -32,7 +32,8 @@ typedef enum
   GIMP_LOG_SHADOW_TILES       = 1 << 8,
   GIMP_LOG_SCALE              = 1 << 9,
   GIMP_LOG_WM                 = 1 << 10,
-  GIMP_LOG_FLOATING_SELECTION = 1 << 11
+  GIMP_LOG_FLOATING_SELECTION = 1 << 11,
+  GIMP_LOG_SHM                = 1 << 12
 } GimpLogFlags;
 
 
@@ -85,6 +86,7 @@ void   gimp_logv     (const gchar *function,
 #define SCALE              GIMP_LOG_SCALE
 #define WM                 GIMP_LOG_WM
 #define FLOATING_SELECTION GIMP_LOG_FLOATING_SELECTION
+#define SHM                GIMP_LOG_SHM
 
 #if 0 /* last resort */
 #  define GIMP_LOG /* nothing => no varargs, no log */
diff --git a/app/plug-in/gimppluginshm.c b/app/plug-in/gimppluginshm.c
index c40f709..323dbc6 100644
--- a/app/plug-in/gimppluginshm.c
+++ b/app/plug-in/gimppluginshm.c
@@ -68,6 +68,8 @@
 
 #include "gimppluginshm.h"
 
+#include "gimp-log.h"
+
 
 #define TILE_MAP_SIZE (TILE_WIDTH * TILE_HEIGHT * 4)
 
@@ -234,6 +236,10 @@ gimp_plug_in_shm_new (void)
       g_slice_free (GimpPlugInShm, shm);
       shm = NULL;
     }
+  else
+    {
+      GIMP_LOG (SHM, "attached shared memory segment ID = %d", shm->shm_ID);
+    }
 
   return shm;
 }
@@ -248,12 +254,11 @@ gimp_plug_in_shm_free (GimpPlugInShm *shm)
 
 #if defined (USE_SYSV_SHM)
 
-#ifndef IPC_RMID_DEFERRED_RELEASE
       shmdt (shm->shm_addr);
+
+#ifndef IPC_RMID_DEFERRED_RELEASE
       shmctl (shm->shm_ID, IPC_RMID, NULL);
-#else
-      shmdt (shm->shm_addr);
-#endif /* IPC_RMID_DEFERRED_RELEASE */
+#endif
 
 #elif defined(USE_WIN32_SHM)
 
@@ -273,6 +278,7 @@ gimp_plug_in_shm_free (GimpPlugInShm *shm)
 
 #endif
 
+      GIMP_LOG (SHM, "detached shared memory segment ID = %d", shm->shm_ID);
     }
 
   g_slice_free (GimpPlugInShm, shm);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]