### _theapmin -- Release Unused Tiled Memory (OS/2)

Format

>     #include <stdlib.h>  /* also in <malloc.h> */
>     int _theapmin(void);

Language Level: Extension
_theapmin returns all unused tiled memory from the runtime heap to the operating system. _theapmin works just like _heapmin, except that it returns only tiled memory; _heapmin returns only regular memory.

You can call _theapmin explicitly, or specify the /Gt compiler option to map all _heapmin calls to _theapmin.

Note: When you specify /Gt, all calls to regular debug memory management functions (calloc and so on) are mapped to their tiled equivalents. However, if you parenthesize the function calls, they are not mapped.

A debug version of this function, _debug_theapmin, is also available. Use the /Tm option to map _theapmin calls to _debug_theapmin.

Return Value
If successful, _theapmin returns 0; otherwise, it returns -1.

Example
This example allocates and frees memory from the tiled runtime heap, and then uses _theapmin to return any unused memory to the tiled heap.

Note: You must compile this example with the /Gt option to enable tiled memory.

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>

    int main(void)
    {
       char *ptr;

       /* Allocate a large object from the system. */
       if (NULL == (ptr = (char*)malloc(60000))) {
          puts("Could not allocate memory block.\n");
          exit(EXIT_FAILURE);
       }
       memset(ptr, 'x', 60000);

       /* The free will keep large object in runtime. */
       free(ptr);

       /* _theapmin will attempt to return the freed object to the system. */
       if (0 != _theapmin()) {
          puts("_debug_theapmin returns failed.\n");
          exit(EXIT_FAILURE);
       }
       return 0;
    }

Memory Management

_debug_heapmin -- Release Unused Memory
_debug_theapmin -- Release Unused Tiled Memory
_heapmin -- Release Unused Memory from Default Heap
_tcalloc -- Reserve Tiled Storage Block
_tfree -- Free Tiled Storage Block
_tmalloc -- Reserve Tiled Storage Block
_trealloc -- Reallocate Tiled Storage Block
_uheapmin -- Release Unused Memory in User Heap
<malloc.h>
<stdlib.h>
/Tm compiler option
/Gt compiler option