At Sat, 9 May 2020 07:18:01 +0200, Dominik Pantůček wrote: > would this be enough to open an issue for that? > > (gdb) info threads > Id Target Id Frame > * 1 Thread 0x7ffff7c1b300 (LWP 19075) "tut22.rkt" > mark_backpointers (gc=gc@entry=0x5555559d10c0) at > ../../../racket/gc2/newgc.c:4078
Yes, this might identify the problem. Being stuck in a linked-list iteration often means that there was a race updating the list. The GC's write barrier is implemented by write-protecting pages and handling SIGSEGV to record the modification (and remove write protection until the next GC). If that handler is called in different future threads, though, then there's currently a race on the list of modified pages. This race doesn't happen with places, because different places have different GC instances. And it won't happen on Mac OS, because the fault is handled at the Mach layer and routes exceptions for all threads to a single handler thread. I'll add a lock at lines 1092-1096 of "newgc.c", and we'll see if that helps. Thanks very much for your help! Matthew -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/5eb6acea.1c69fb81.f6df9.aa57SMTPIN_ADDED_MISSING%40gmr-mx.google.com.