> which GC is the default The _\--gc:refc_ (deferred reference counting/heap per thread) is the default right now. The _\--gc:arc_ (immediate reference counting/shared heap) or _\--gc:orc_ (immediate reference counting/shared heap + cycle detector) is set to replace it.
The _async_ stuff works well with _\--gc:refc_ but buggy with _\--gc:arc_ because it creates cycles for which you need _\--gc:orc_. Both _\--gc:arc_ and _\--gc:orc_ are pretty new. The _async_ stuff works badly with threads because it kind of requires _\--gc:refc_ right now and passing stuff between thread requires copying between heaps. Soon _\--gc:arc_ and _\--gc:orc_ will work with _async_ and will replace _\--gc:refc_. Then _async_ will work with threads better.