We're updating the issue view to help you get more done. 

Deprecate U_USER_ATOMICS_H, U_USER_MUTEX_H, U_USER_MUTEX_CPP

Description

Deprecate U_USER_ATOMICS_H, U_USER_MUTEX_H, U_USER_MUTEX_CPP

These, when defined, pull user-specified files into the build, overriding ICU's built-in definitions for atomics and mutexes.

The need for platform-specific overriding of atomics should be disappearing, as compiler support for std::atomic improves.

The platform/user mutexes were intended to allow overriding both the declaration and implementation of ICU's internal mutex wrapper classes. But exactly what needed to be provided with any such override implementation was never clearly described, and the set of functions needed has grown over time. Based on the lack of any comments when incompatible changes were made (the addition of condition variables, for example), my guess is that no one is using these overrides.

I propose deprecating them. A similar result could still be obtained by patching the ICU sources as part of a customized build process.

Environment

Status

Assignee

Andy Heninger

Reporter

Andy Heninger

Time Needed

Days

Components

Fix versions

Priority

major