localeimpl.h revision 732efd5515b5788339f3da4db04de7cea0f79c86
1N/A * This file and its contents are supplied under the terms of the 1N/A * Common Development and Distribution License ("CDDL"), version 1.0. 1N/A * You may only use this file in accordance with the terms of version 1N/A * A full copy of the text of the CDDL should have accompanied this 1N/A * source. A copy of the CDDL is also available via the Internet at 1N/A * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1N/A * This file implements the 2008 newlocale and friends handling. It is 1N/A/* private locale structures */ 1N/A * Because some locale data is rather ahem.. large, we would like to keep 1N/A * reference counts on it. We create an abstract header (locdata) structure * which keeps a point to the opaque per-category data, along with a reference * count to it. To be threadsafe, we will use atomics when holding it or * freeing it. (This only occurs when locale objects are created or destroyed, * so there should be no performance impact on hot code paths. If your code * even so, the atomic and reference counting will probably *greatly* improve * your life as bootstrapping locale data from files is quite expensive. void *
l_map;
/* mapped file */ * The loaded value is used for localeconv. In paticular, when * when we change the value of one of the above categories, we will * also need to update the lconv structure. The loaded bit indicates * that the lconv structure is "current" for that category. It's * sort of an "inverse dirty" bit. #
endif /* _LOCALEIMPL_H_ */