tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/lib/libc
On Wed, Aug 21, 2013 at 12:43:58AM +0000, YAMAMOTO Takashi wrote:
> > On Tue, Aug 20, 2013 at 03:31:01PM +0000, YAMAMOTO Takashi wrote:
> >> > On Tue, Aug 20, 2013 at 09:31:18AM +0000, YAMAMOTO Takashi wrote:
> >> >> > Module Name: src
> >> >> > Committed By: joerg
> >> >> > Date: Mon Aug 19 22:43:28 UTC 2013
> >> >> >
> >> >> > Modified Files:
> >> >> > src/lib/libc/citrus: citrus_lc_ctype.c
> >> >> > src/lib/libc/gen: isctype.c
> >> >> > src/lib/libc/locale: global_locale.c setlocale_local.h
> >> >> >
> >> >> > Log Message:
> >> >> > Remove most LC_CTYPE specific parts of locale.cache.
> >> >>
> >> >> why?
> >> >
> >> > Unlike the locale parts, the cache is currently not invariant and also
> >> > not updated atomically. I am working on fixing that. It is useful for
> >> > run time memory usage to remove redundant fields and reduce the number
> >> > of categories that affect the cache.
> >>
> >> for what purpose do you need atomic update?
> >
> > In a multi-threaded application, calling nl_langinfo or localeconv
> > should provide consistent results. It doesn't do that ATM.
>
> - who updates them behind nl_langinfo/localeconv?
setlocale
> - does looking at part_impl directly make them atomic? how?
part_impl doesn't change after creation, so changes are visible at the
point that part_impl is updated. This is the best that can be done
without using explicit locking. It ensures that at least all data
from the same category is consistent.
Joerg
Home |
Main Index |
Thread Index |
Old Index