|  | /* | 
|  | ****************************************************************************** | 
|  | *                                                                            * | 
|  | * Copyright (C) 2001-2001, International Business Machines                   * | 
|  | *                Corporation and others. All Rights Reserved.                * | 
|  | *                                                                            * | 
|  | ****************************************************************************** | 
|  | *   file name:  uclean.h | 
|  | *   encoding:   US-ASCII | 
|  | *   tab size:   8 (not used) | 
|  | *   indentation:4 | 
|  | * | 
|  | *   created on: 2001July05 | 
|  | *   created by: George Rhoten | 
|  | */ | 
|  |  | 
|  | #ifndef __UCLEAN_H__ | 
|  | #define __UCLEAN_H__ | 
|  |  | 
|  | #include "unicode/utypes.h" | 
|  |  | 
|  | /** | 
|  | * Clean up the system resources, such as allocated memory or open files, | 
|  | * used in all ICU libraries. This will free/delete all memory owned by the | 
|  | * ICU libraries, and return them to their original load state. All open ICU | 
|  | * items (collators, resource bundles, converters, etc.) must be closed before | 
|  | * calling this function, otherwise ICU may not free its allocated memory | 
|  | * (e.g. close your converters and resource bundles before calling this | 
|  | * function). Generally, this function should be called once just before | 
|  | * an application exits. For applications that dynamically load and unload | 
|  | * the ICU libraries (relatively uncommon), u_cleanup() should be called | 
|  | * just before the library unload. | 
|  | * <p> | 
|  | * u_cleanup() is not thread safe.  All other threads should stop using ICU | 
|  | * before calling this function. | 
|  | * <p> | 
|  | * Any open ICU items will be left in an undefined state by u_cleanup(), | 
|  | * and any subsequent attempt to use such an item will give unpredictable | 
|  | * results. | 
|  | * <p> | 
|  | * After calling u_cleanup(), an application may continue to use ICU by | 
|  | * creating an ICU C++ object or opening new items (converters, collators, | 
|  | * etc.) and using them.  An application must use ICU from one single | 
|  | * thread before allowing other threads or processes from using ICU.  This | 
|  | * is so that the ICU libraries can reinitialize in a thread safe manner. | 
|  | * <p> | 
|  | * The use of u_cleanup() just before an application terminates is optional, | 
|  | * but it should be called only once for performance reasons. The primary | 
|  | * benefit is to eliminate reports of memory or resource leaks originating | 
|  | * in ICU code from the results generated by heap analysis tools. | 
|  | * <p> | 
|  | * <strong>Use this function with great care!</strong> | 
|  | * </p> | 
|  | * | 
|  | * @draft ICU 2.0 | 
|  | */ | 
|  | U_CAPI void U_EXPORT2 | 
|  | u_cleanup(void); | 
|  |  | 
|  | #endif |