H5_GARBAGE_COLLECT walks through all garbage collection routines of the library, freeing any unused memory.
It is not required that H5_GARBAGE_COLLECT be called at any particular time; it is only necessary in certain situations where the application has performed actions that cause the library to allocate many objects. The application should call H5_GARBAGE_COLLECT if it eventually releases those objects and wants to reduce the memory used by the library from the peak usage required.
The library automatically garbage collects all the free lists when the application ends.
Returns a non-negative value if successful; otherwise returns a negative value.