Subject: Re: bug#25387: guile-2.2 multi-thread segfault in SCM_VALIDATE_WEAK_TABLE

From: Andy Wingo <[email-masked]>
Date: Wed, 11 Jan 2017 22:24:03 +0100

On Mon 09 Jan 2017 23:08, Andy Wingo <[email-masked]> writes:

> On Sun 08 Jan 2017 01:18, Linas Vepstas <[email-masked]> writes:
>
>> Following program crashes immediately (fraction of a second)
>> in guile-2.2, current git version (as of 29 Dec 2016
>> a0656ad4cf976b3845e9b9663a90b46b4cf9fc5a )
>
> Nice bug, thank you!  I will have a look.

Fixed in master, I think.  Have a look!

  commit 63bf6ffa0d3cdddf8151cc80ac18fe5dfb614587
  Author: Andy Wingo <[email-masked]>
  Date:   Wed Jan 11 22:17:24 2017 +0100

      Protect call-with-new-thread data from GC.
      
      * libguile/threads.c (struct launch_data): Add prev/next pointers.
        (protected_launch_data, protected_launch_data_lock): New static vars.
        (protect_launch_data, unprotect_launch_data): New functions.
        (really_launch, scm_sys_call_with_new_thread): Preserve launch data
        from GC.  Thanks to Linas Vepstas for the report!

Cheers,

Andy