u_cleanup() should close OS level mutexes.

Description

Calling u_cleanup() should clean up any OS level mutexes used by the ICU library in addition to the heap memory that it already handles.

Failure to clean up OS level mutexes could be an issue for any process that repeatedly DLL loads and unloads ICU. Any such process must already call u_cleanup() to avoid memory leaks, meaning that nothing new would be required on the application side.

A brief history:

  • ICU 63 and earlier, mutexes leak on library unloading.

  • ICU 64 mutexes do not leak, but there are order-of-destruction problems.

Assignee

Jeff Genovy

Reporter

Andy Heninger

Components

Labels

None

Reviewer

None

Priority

major

Time Needed

Days

Fix versions

Configure