/*
* Copyright 2006-2010 Novell
* Copyright 2011 Xamarin Inc
+ * Licensed under the MIT license. See LICENSE file in the project root for full license information.
*/
#include <stdlib.h>
#include "config.h"
#include "mono-counters.h"
#include "mono-proclib.h"
-#include "mono-mutex.h"
+#include "mono-os-mutex.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
if (initialized)
return;
- mono_mutex_init (&counters_mutex);
+ mono_os_mutex_init (&counters_mutex);
initialize_system_counters ();
if ((type & MONO_COUNTER_VARIANCE_MASK) == 0)
type |= MONO_COUNTER_MONOTONIC;
- mono_mutex_lock (&counters_mutex);
+ mono_os_mutex_lock (&counters_mutex);
for (counter = counters; counter; counter = counter->next) {
if (counter->addr == addr) {
g_warning ("you are registering twice the same counter address");
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
return;
}
}
- counter = (MonoCounter *) malloc (sizeof (MonoCounter));
+ counter = (MonoCounter *) g_malloc (sizeof (MonoCounter));
if (!counter) {
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
return;
}
counter->name = g_strdup (name);
for (register_callback = register_callbacks; register_callback; register_callback = register_callback->next)
((MonoCounterRegisterCallback)register_callback->data) (counter);
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
}
/**
return;
}
- mono_mutex_lock (&counters_mutex);
+ mono_os_mutex_lock (&counters_mutex);
register_callbacks = g_slist_append (register_callbacks, (gpointer) callback);
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
}
typedef int (*IntFunc) (void);
return;
}
- mono_mutex_lock (&counters_mutex);
+ mono_os_mutex_lock (&counters_mutex);
for (counter = counters; counter; counter = counter->next) {
if (!cb (counter, user_data)) {
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
return;
}
}
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
}
#define COPY_COUNTER(type,functype) do { \
}
static const char
-section_names [][10] = {
+section_names [][12] = {
"JIT",
"GC",
"Metadata",
"Security",
"Runtime",
"System",
+ "", // MONO_COUNTER_PERFCOUNTERS - not used.
+ "Profiler",
};
static void
if (!initialized)
return;
- mono_mutex_lock (&counters_mutex);
+ mono_os_mutex_lock (&counters_mutex);
if (!counters) {
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
return;
}
}
fflush (outfile);
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
}
/**
if (!initialized)
return;
- mono_mutex_lock (&counters_mutex);
+ mono_os_mutex_lock (&counters_mutex);
counter = counters;
counters = NULL;
while (counter) {
MonoCounter *tmp = counter;
counter = counter->next;
- free ((void*)tmp->name);
- free (tmp);
+ g_free ((void*)tmp->name);
+ g_free (tmp);
}
- mono_mutex_unlock (&counters_mutex);
+ mono_os_mutex_unlock (&counters_mutex);
}
static MonoResourceCallback limit_reached = NULL;