Lines 65-71
localeconv_l(locale_t loc)
Link Here
|
65 |
FIX_LOCALE(loc); |
65 |
FIX_LOCALE(loc); |
66 |
struct lconv *ret = &loc->lconv; |
66 |
struct lconv *ret = &loc->lconv; |
67 |
|
67 |
|
68 |
if (loc->monetary_locale_changed) { |
68 |
if (atomic_load_acq_int(&loc->monetary_locale_changed) != 0) { |
69 |
/* LC_MONETARY part */ |
69 |
/* LC_MONETARY part */ |
70 |
struct lc_monetary_T * mptr; |
70 |
struct lc_monetary_T * mptr; |
71 |
|
71 |
|
Lines 94-103
localeconv_l(locale_t loc)
Link Here
|
94 |
M_ASSIGN_CHAR(int_n_sep_by_space); |
94 |
M_ASSIGN_CHAR(int_n_sep_by_space); |
95 |
M_ASSIGN_CHAR(int_p_sign_posn); |
95 |
M_ASSIGN_CHAR(int_p_sign_posn); |
96 |
M_ASSIGN_CHAR(int_n_sign_posn); |
96 |
M_ASSIGN_CHAR(int_n_sign_posn); |
97 |
loc->monetary_locale_changed = 0; |
97 |
atomic_store_int(&loc->monetary_locale_changed, 0); |
98 |
} |
98 |
} |
99 |
|
99 |
|
100 |
if (loc->numeric_locale_changed) { |
100 |
if (atomic_load_acq_int(&loc->numeric_locale_changed) != 0) { |
101 |
/* LC_NUMERIC part */ |
101 |
/* LC_NUMERIC part */ |
102 |
struct lc_numeric_T * nptr; |
102 |
struct lc_numeric_T * nptr; |
103 |
|
103 |
|
Lines 107-113
localeconv_l(locale_t loc)
Link Here
|
107 |
N_ASSIGN_STR(decimal_point); |
107 |
N_ASSIGN_STR(decimal_point); |
108 |
N_ASSIGN_STR(thousands_sep); |
108 |
N_ASSIGN_STR(thousands_sep); |
109 |
N_ASSIGN_STR(grouping); |
109 |
N_ASSIGN_STR(grouping); |
110 |
loc->numeric_locale_changed = 0; |
110 |
atomic_store_int(&loc->numeric_locale_changed, 0); |
111 |
} |
111 |
} |
112 |
|
112 |
|
113 |
return ret; |
113 |
return ret; |