static void
local_finalMessage(void)
{
#ifdef ENABLE_XMEM_TRACK_MEM
	printf("\n");
	xmem_info(stdout);
	printf("\n");
#endif
	;
}
Example #2
0
static void
local_finalMessage(void)
{
#ifdef ENABLE_XMEM_TRACK_MEM
	printf("\n");
	xmem_info(stdout);
	printf("\n");
#endif
	printf("\nAll done.\nThank you for using `%s'!\n"
	       "Vertu sæl/sæll...\n",
	       localProgramName);
}
Example #3
0
extern void *
xrealloc(void *ptr, size_t size)
{
    void     *dummy;
#ifdef XMEM_TRACK_MEM
    uint64_t old_size;
#endif

    if (ptr == NULL) {
        dummy = xmalloc(size);
        return dummy;
    }

#ifdef XMEM_TRACK_MEM
    dummy = realloc(((uint64_t *)ptr) - 1, size + 8);
#else
    dummy = realloc(ptr, size);
#endif
    if (dummy == NULL) {
        fprintf(stderr, "Could not re-allocate ");
        if (size < 1024) {
            fprintf(stderr, "%i b\n", (int)size);
        } else if (size < 1048576) {
            fprintf(stderr, "%f Kib\n", size / 1024.);
        } else if (size < 1073741824) {
            fprintf(stderr, "%f Mib\n", size / 1048576.);
        } else {
            fprintf(stderr, "%.2f Gib\n", size / 1073741824.);
        }
#ifdef XMEM_TRACK_MEM
        xmem_info(stderr);
#endif
        fprintf(stderr, "Aborting... :-(\n");
        abort();
    }

#ifdef XMEM_TRACK_MEM
    old_size                = *((uint64_t *)dummy);
    global_allocated_bytes -= old_size;
    global_allocated_bytes += size;
    if (global_allocated_bytes > global_max_allocated_bytes) {
        global_max_allocated_bytes = global_allocated_bytes;
    }
    *((uint64_t *)dummy) = (uint64_t)size;
    dummy                = (void *)(((uint64_t *)dummy) + 1);
#endif

    return dummy;
} /* xrealloc */
Example #4
0
extern void
xfree(void *ptr)
{
#ifdef XMEM_TRACK_MEM
    if (ptr == NULL)
        return;

    if (global_malloc_vs_free <= 0) {
        fprintf(stderr, "Calling free too often.\n");
        xmem_info(stderr);
        abort();
    }
    global_allocated_bytes -= *(((uint64_t *)ptr) - 1);
    global_malloc_vs_free--;
    free(((uint64_t *)ptr) - 1);
#else
    free(ptr);
#endif

    return;
}
Example #5
0
static void
local_finalMessage(void)
{
	int rank = 0;
#ifdef WITH_MPI
	MPI_Comm_rank(MPI_COMM_WORLD, &rank);
	MPI_Finalize();
#endif
	if (localSectionName != NULL)
		xfree(localSectionName);
	if (localIniFileName != NULL)
		xfree(localIniFileName);
	if (rank == 0) {
#ifdef XMEM_TRACK_MEM
		printf("\n");
		xmem_info(stdout);
		printf("\n");
#endif
		printf("\nVertu sæl/sæll...\n");
	}
}
Example #6
0
/*--- Implementation of exported functions ------------------------------*/
extern void *
xmalloc(size_t size)
{
    void *dummy;

#ifdef XMEM_TRACK_MEM
    dummy = malloc(size + 8);
#else
    dummy = malloc(size);
#endif
    if (dummy == NULL) {
        fprintf(stderr, "Could not allocate ");
        if (size < 1024) {
            fprintf(stderr, "%i b\n", (int)size);
        } else if (size < 1048576) {
            fprintf(stderr, "%.2f Kib\n", size / 1024.);
        } else if (size < 1073741824) {
            fprintf(stderr, "%.2f Mib\n", size / 1048576.);
        } else {
            fprintf(stderr, "%.2f Gib\n", size / 1073741824.);
        }
#ifdef XMEM_TRACK_MEM
        xmem_info(stderr);
#endif
        fprintf(stderr, "Aborting... :-(\n");
        abort();
    }

#ifdef XMEM_TRACK_MEM
    global_allocated_bytes += size;
    global_malloc_vs_free++;
    if (global_allocated_bytes > global_max_allocated_bytes) {
        global_max_allocated_bytes = global_allocated_bytes;
    }
    *((uint64_t *)dummy) = (uint64_t)size;
    dummy                = (void *)(((uint64_t *)dummy) + 1);
#endif

    return dummy;
} /* xmalloc */
Example #7
0
extern void *
xmalloc(size_t size)
{
    void *dummy;

#ifdef XMEM_TRACK_MEM
    dummy = malloc(size + 8);
#else
    dummy = malloc(size);
#endif
    if (dummy == NULL) {
        fprintf(stderr, "Could not allocate ");
        if (size < 1024) {
            fprintf(stderr, "%ib\n", (int)size);
        } else if (size < 1048576) {
            fprintf(stderr, "%fkb\n", size / 1024.);
        } else {
            fprintf(stderr, "%fMb\n", size / 1048576.);
        }
#ifdef XMEM_TRACK_MEM
        xmem_info(stderr);
#endif
        fprintf(stderr, "Exiting... :-(\n");
        exit(EXIT_FAILURE);
    }

#ifdef XMEM_TRACK_MEM
    global_allocated_bytes += size;
    global_malloc_vs_free++;
    if (global_allocated_bytes > global_max_allocated_bytes)
        global_max_allocated_bytes = global_allocated_bytes;
    *((uint64_t *)dummy) = (uint64_t)size;
    dummy                = (void *)(((uint64_t *)dummy) + 1);
#endif

    return dummy;
} /* xmalloc */