allinea_safe_malloc.h File Reference

Async signal safe memory management functions for use in metric plugins.

#include <stdlib.h>

Include dependency graph for allinea_safe_malloc.h:

allinea_safe_malloc_8h_incl

This graph shows which files directly or indirectly include this file:

allinea_safe_malloc_8h_dep_incl

Source code

1
5 #ifndef ALLINEA_SAFE_MALLOC_H
6 #define ALLINEA_SAFE_MALLOC_H
7
8 #include <stdlib.h>
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
24
37 extern void* allinea_safe_malloc(size_t size);
38
40
49 extern void allinea_safe_free(void *ptr);
50
52
67 extern void* allinea_safe_calloc(size_t nmemb, size_t size);
68
70
89 extern void* allinea_safe_realloc(void *ptr, size_t size);
90
92
93 #ifdef __cplusplus
94 }
95 #endif
96
97 #endif

Memory management functions

Async signal safe replacements for memory management functions.

The metric library functions must be async signal safe and therefore the standard libc memory management functions (such as malloc, free, new, delete) cannot be used.

These memory management functions can safely be used by the metric plugin libraries even if they are called from inside a signal handler:

void * allinea_safe_malloc (size_t size)

An async-signal-safe version of malloc.

void allinea_safe_free (void * ptr)

An async-signal-safe version of free.

void * allinea_safe_calloc (size_t nmemb, size_t size)

An async-signal-safe version of calloc.

void * allinea_safe_realloc(void * ptr, size_t size)

An async-signal-safe version of realloc.

See also