Hi, [EMAIL PROTECTED] (Ludovic Courtès) writes:
> But now, there's a similar issue in HEAD with `(ice-9 i18n)': > > PASS: locale objects: make-locale (2 args) > PASS: locale objects: make-locale (2 args, list) > PASS: locale objects: make-locale (3 args) > guile: Error detected by libpthread: Unlocking unlocked mutex. > Detected by file "/n0/gdt/NetBSD-4/src/lib/libpthread/pthread_mutex.c", > line 363, function "pthread_mutex_unlock". > > Backtrace: > > #0 0xbba68fff in kill () from /usr/lib/libc.so.12 > #1 0xbb9dadb3 in pthread__errorfunc () from /usr/lib/libpthread.so.0 > #2 0xbb9d93f8 in pthread_mutex_unlock () from /usr/lib/libpthread.so.0 > #3 0xbb9cbaa0 in scm_make_locale (category_list=0x2, > locale_name=0x80d6870, base_locale=0x204) at ../../libguile/i18n.c:436 OK, got this one too, and also a similar problem in `nl-langinfo' (see attached patch). HEAD now seems to work like a charm on NetBSD/i386, though it still cannot be compiled with `-Werror' (patches welcome!). Thanks, Ludovic.
--- orig/libguile/ChangeLog +++ mod/libguile/ChangeLog @@ -1,3 +1,13 @@ +2007-10-04 Ludovic Courtès <[EMAIL PROTECTED]> + + * i18n.c (scm_make_locale)[!USE_GNU_LOCALE_API]: Don't call + `leave_locale_section ()' on failure of + `enter_locale_section ()' since the mutex is not held and locale + settings are unchanged. + (scm_nl_langinfo)[!USE_GNU_LOCALE_API]: Use + `restore_locale_settings ()' instead of `leave_locale_section ()' + since the mutex is not held. + 2007-10-02 Ludovic Courtès <[EMAIL PROTECTED]> * threads.c (on_thread_exit): Don't call `scm_leave_guile ()' --- orig/libguile/i18n.c +++ mod/libguile/i18n.c @@ -685,12 +685,14 @@ scm_t_locale_settings prev_locale; err = enter_locale_section (c_locale, &prev_locale); - leave_locale_section (&prev_locale); if (err) goto fail; else - SCM_NEWSMOB (locale, scm_tc16_locale_smob_type, c_locale); + { + leave_locale_section (&prev_locale); + SCM_NEWSMOB (locale, scm_tc16_locale_smob_type, c_locale); + } } #endif @@ -1410,7 +1412,7 @@ { c_result = nl_langinfo (c_item); - leave_locale_section (&lsec_prev_locale); + restore_locale_settings (&lsec_prev_locale); free_locale_settings (&lsec_prev_locale); } #endif
_______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel