Fixed uninitialised FunBind fun_tick field
[ghc-hetmet.git] / rts / Stable.c
index 5a1b92b..e5e8dfb 100644 (file)
@@ -19,6 +19,7 @@
 #include "RtsFlags.h"
 #include "OSThreads.h"
 #include "Trace.h"
+#include "Stable.h"
 
 /* Comment from ADR's implementation in old RTS:
 
@@ -169,6 +170,9 @@ exitStablePtrTable(void)
     stgFree(stable_ptr_table);
   stable_ptr_table = NULL;
   SPT_size = 0;
+#ifdef THREADED_RTS
+  closeMutex(&stable_mutex);
+#endif
 }
 
 /*
@@ -412,15 +416,15 @@ gcStablePtrTable( void )
                if (p->sn_obj == NULL) {
                    // StableName object is dead
                    freeStableName(p);
-                   debugTrace(DEBUG_stable, "GC'd Stable name %ld", 
-                              p - stable_ptr_table);
+                   debugTrace(DEBUG_stable, "GC'd Stable name %ld",
+                              (long)(p - stable_ptr_table));
                    continue;
                    
                } else {
                  p->addr = (StgPtr)isAlive((StgClosure *)p->addr);
                  debugTrace(DEBUG_stable, 
                             "stable name %ld still alive at %p, ref %ld\n",
-                            p - stable_ptr_table, p->addr, p->ref);
+                            (long)(p - stable_ptr_table), p->addr, p->ref);
                }
            }
        }