# version 3.0.10 # `config.guess` x86_64-pc-linux-gnu
# `config.status` `--prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --datarootdir=/usr/share --disable-dependency-tracking --disable-silent-rules --disable-static --docdir=/usr/share/doc/guile-3.0.10-r103 --htmldir=/usr/share/doc/guile-3.0.10-r103/html --with-sysroot=/ --libdir=/usr/lib64 --program-suffix=-3.0 --infodir=/usr/share/guile-data/3.0/info --with-pkgconfigdir=/usr/share/guile-data/3.0/pkgconfig --disable-error-on-warning --disable-rpath --disable-lto --enable-posix --without-libgmp-prefix --without-libiconv-prefix --without-libintl-prefix --without-libreadline-prefix --without-libunistring-prefix --disable-guile-debug --disable-debug-malloc --enable-deprecated --enable-jit --enable-networking --disable-nls --enable-regex --with-threads build_alias=x86_64-pc-linux-gnu host_alias=x86_64-pc-linux-gnu CC=gcc 'CFLAGS=-O2 -march=native -pipe -std=gnu17' LDFLAGS=-fuse-ld=mold PKG_CONFIG_PATH=/usr/share/guile-data/3.0/pkgconfig` # How to reproduce ```c #include <libguile.h> #include <pthread.h> void* foo(void*) { return NULL; } void* run_with_guile(void*) { scm_with_guile(foo, NULL); return NULL; } int main(void) { pthread_t thread_1, thread_2; pthread_create(&thread_1, NULL, run_with_guile, NULL); pthread_create(&thread_2, NULL, run_with_guile, NULL); pthread_join(thread_1, NULL); pthread_join(thread_2, NULL); return 0; } ``` ## Output ```txt Segmentation fault ``` # Intended behaviour According to the [documentation]( https://www.gnu.org/software/guile/manual/html_node/Guile-Initialization-Functions.html), you should be able to call `scm_with_guile` concurrently.