The C RTL has a mode that allocates storage for thread-specific data allocated by threads at non-AST level separate for data allocated for ASTs. In this mode, each access to thread- specific data requires a call to LIB$AST_IN_PROG, which can add significant overhead when accessing thread-specific data in the C RTL. The alternate mode protects thread-specific data only if another function has it locked. This protects data that is in use within the C RTL, but does not protect the caller from an AST changing the data pointed to. This latter mode is now the C RTL default for the strtok, ecvt, and fcvt functions. You can select the legacy AST safe mode by enabling DECC$THREAD_ DATA_AST_SAFE.