diff options
author | Andy Wingo <wingo@pobox.com> | 2012-02-14 14:30:48 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2012-02-17 12:11:35 +0100 |
commit | 8dfb7bbfd908ca883d0fdd0d868e13e6b20803ae (patch) | |
tree | a9de6d013851758e47cab732e79039b51c44187a /libguile/init.c | |
parent | 6a97b1f93aace5c7c976aef51d36b3ae9cfd5630 (diff) | |
download | guile-8dfb7bbfd908ca883d0fdd0d868e13e6b20803ae.tar.gz |
wrap iconv_open / iconv_close with a lock to help in thread/fork issues
* libguile/bytevectors.c (STRING_TO_UTF, scm_string_to_utf8)
(UTF_TO_STRING):
* libguile/ports.c (open_iconv_descriptors, close_iconv_descriptors):
* libguile/strings.c (scm_from_stringn, scm_to_stringn): Wrap operations
that acquire and destroy iconv contexts with a mutex. While iconv is
threadsafe, internally it uses a lock, and we need to make sure when
we fork() that no one has that lock -- so we surround it with another
one. Gross.
Diffstat (limited to 'libguile/init.c')
0 files changed, 0 insertions, 0 deletions