I making thoughts about more global locking within threads, since I got the following errors:
...
fff917cc000-7fff91fcc000 rw-p 00000000 00:00 0 7fff91fcc000-7fff91fcd000 ---p 00000000 00:00 0 7fff91fcd000-7fff927cd000 rw-p 00000000 00:00 0 7fff927cd000-7fff927ce000 ---p 00000000 00:00 0 7fff927ce000-7fff92fce000 rw-p 00000000 00:00 0 7fff92fce000-7fff92fcf000 ---p 00000000 00:00 0 7fff92fcf000-7fff937cf000 rw-p 00000000 00:00 0 7fff937cf000-7fff937d0000 ---p 00000000 00:00 0 7fff937d0000-7fff93fd0000 rw-p 00000000 00:00 0 7fff93fd0000-7fff93fd1000 ---p 00000000 00:00 0 7fff93fd1000-7fff947d1000 rw-p 00000000 00:00 0 7fff947d1000-7fff947d2000 ---p 00000000 00:00 0 7fff947d2000-7fff94fd2000 rw-p 00000000 00:00 0 7fff94fd2000-7fff94fd3000 ---p 00000000 00:00 0 7fff94fd3000-7fff957d3000 rw-p 00000000 00:00 0 7fff957d3000-7fff957d4000 ---p 00000000 00:00 0 7fff957d4000-7fff95fd4000 rw-p 00000000 00:00 0 7fff95fd4000-7fff95fd5000 ---p 00000000 00:00 0 7fff95fd5000-7fff967d5000 rw-p 00000000 00:00 0 Program received signal SIGABRT, Aborted. [Switching to Thread 0x7fffeec86700 (LWP 15013)] 0x00007ffff0303349 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); (gdb) make ags (gdb) bt #0 0x00007ffff0303349 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff0304748 in __GI_abort () at abort.c:89 #2 0x00007ffff03411d4 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7ffff04334b8 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175 #3 0x00007ffff034695e in malloc_printerr (action=3, str=0x7ffff042f608 "free(): invalid size", ptr=<optimized out>) at malloc.c:4991 #4 0x00007ffff0347666 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3837 #5 0x00007ffff290dec8 in g_free () from /usr/lib/../lib64/libglib-2.0.so.0 #6 0x00007ffff2902518 in g_list_foreach () from /usr/lib/../lib64/libglib-2.0.so.0 #7 0x00007ffff2901ac8 in g_list_free_full () from /usr/lib/../lib64/libglib-2.0.so.0 #8 0x000000000046a74f in ags_audio_signal_finalize (gobject=0x7fffdc18adc0) at ./src/ags/audio/ags_audio_signal.c:329 #9 0x00007ffff2df1282 in g_object_unref () from /usr/lib/../lib64/libgobject-2.0.so.0 #10 0x000000000046c752 in ags_recall_recycling_set_property (gobject=0x7fffdc793cf0, prop_id=<optimized out>, value=0x7fffeec83d50, param_spec=0x7fffe17ed280) at ./src/ags/audio/ags_recall_recycling.c:367 #11 0x00007ffff2dec876 in object_set_property () from /usr/lib/../lib64/libgobject-2.0.so.0 #12 0x00007ffff2dee774 in g_object_set_valist () from /usr/lib/../lib64/libgobject-2.0.so.0 #13 0x00007ffff2deef54 in g_object_set () from /usr/lib/../lib64/libgobject-2.0.so.0 #14 0x000000000046c2d6 in ags_recall_recycling_destination_add_audio_signal_callback (destination=<optimized out>, audio_signal=0x7fffc8003990, recall_recycling=0x7fffdc793cf0) at ./src/ags/audio/ags_recall_recycling.c:728 #15 0x00007ffff2de986a in g_cclosure_marshal_VOID__OBJECT () from /usr/lib/../lib64/libgobject-2.0.so.0 #16 0x00007ffff2de4d5f in g_closure_invoke () from /usr/lib/../lib64/libgobject-2.0.so.0 #17 0x00007ffff2e01f24 in signal_emit_unlocked_R () from /usr/lib/../lib64/libgobject-2.0.so.0 #18 0x00007ffff2e00f7c in g_signal_emit_valist () from /usr/lib/../lib64/libgobject-2.0.so.0 #19 0x00007ffff2e014cf in g_signal_emit () from /usr/lib/../lib64/libgobject-2.0.so.0 #20 0x000000000046871b in ags_recycling_add_audio_signal (recycling=0x7fffe00ac4f0, audio_signal=0x7fffc8003990) at ./src/ags/audio/ags_recycling.c:278 #21 0x0000000000481630 in ags_loop_channel_run_create_audio_signals (loop_channel_run=0x7fffe000aae0) at ./src/ags/audio/recall/ags_loop_channel_run.c:607 #22 0x00007ffff2de8607 in g_cclosure_marshal_VOID(unsigned int0_t, void) () from /usr/lib/../lib64/libgobject-2.0.so.0 #23 0x00007ffff2de4ff7 in _g_closure_invoke_va () from /usr/lib/../lib64/libgobject-2.0.so.0 #24 0x00007ffff2e002f9 in g_signal_emit_valist () from /usr/lib/../lib64/libgobject-2.0.so.0 #25 0x00007ffff2e014cf in g_signal_emit () from /usr/lib/../lib64/libgobject-2.0.so.0 #26 0x000000000047d73a in ags_count_beats_audio_run_sequencer_loop (count_beats_audio_run=0x7fffdc05c4c0, run_order=0) at ./src/ags/audio/recall/ags_count_beats_audio_run.c:861 #27 0x000000000047d93b in ags_count_beats_audio_run_sequencer_alloc_output_callback (delay_audio_run=<optimized out>, run_order=0, delay=<optimized out>, attack=<optimized out>, count_beats_audio_run=0x7fffdc05c4c0) at ./src/ags/audio/recall/ags_count_beats_audio_run.c:948 #28 0x00007ffff2de4d5f in g_closure_invoke () from /usr/lib/../lib64/libgobject-2.0.so.0 #29 0x00007ffff2e01c62 in signal_emit_unlocked_R () from /usr/lib/../lib64/libgobject-2.0.so.0 #30 0x00007ffff2e00f7c in g_signal_emit_valist () from /usr/lib/../lib64/libgobject-2.0.so.0 #31 0x00007ffff2e014cf in g_signal_emit () from /usr/lib/../lib64/libgobject-2.0.so.0 #32 0x0000000000477045 in ags_delay_audio_run_sequencer_alloc_output (delay_audio_run=0x7fffe0392480, run_order=0, delay=<optimized out>, attack=492) at ./src/ags/audio/recall/ags_delay_audio_run.c:574 #33 0x00000000004773ba in ags_delay_audio_run_run_pre (recall=<optimized out>) at ./src/ags/audio/recall/ags_delay_audio_run.c:420 #34 0x00007ffff2de8607 in g_cclosure_marshal_VOID(unsigned int0_t, void) () from /usr/lib/../lib64/libgobject-2.0.so.0 #35 0x00007ffff2de5434 in g_type_class_meta_marshalv () from /usr/lib/../lib64/libgobject-2.0.so.0 #36 0x00007ffff2de4ff7 in _g_closure_invoke_va () from /usr/lib/../lib64/libgobject-2.0.so.0 #37 0x00007ffff2e002f9 in g_signal_emit_valist () from /usr/lib/../lib64/libgobject-2.0.so.0 #38 0x00007ffff2e014cf in g_signal_emit () from /usr/lib/../lib64/libgobject-2.0.so.0 #39 0x0000000000471d36 in ags_recall_run_pre (recall=0x7fffe0392480) at ./src/ags/audio/ags_recall.c:1239 #40 0x000000000046fdb9 in ags_audio_play (audio=audio@entry=0x7fffe00039f0, recall_id=recall_id@entry=0x7fffdc0ee100, stage=0) at ./src/ags/audio/ags_audio.c:2252 #41 0x000000000048ca8b in ags_channel_recursive_play_output (output=output@entry=0x7fffe00c2c70, output_recall_id=output_recall_id@entry=0x7fffdc0ee100) at ./src/ags/audio/ags_channel.c:2011 #42 0x000000000048d03e in ags_channel_recursive_play (channel=channel@entry=0x7fffe00c2c70, recall_id=0x7fffdc0ee100, stage=stage@entry=0) at ./src/ags/audio/ags_channel.c:2088 #43 0x00000000004c329f in ags_audio_loop_play_audio (audio_loop=audio_loop@entry=0x902fd0) at ./src/ags/thread/ags_audio_loop.c:779 #44 0x00000000004c34a8 in ags_audio_loop_run (thread=<optimized out>) at ./src/ags/thread/ags_audio_loop.c:540 #45 0x00007ffff2de7dd0 in g_cclosure_marshal_VOID__VOIDv () from /usr/lib/../lib64/libgobject-2.0.so.0 #46 0x00007ffff2de5434 in g_type_class_meta_marshalv () from /usr/lib/../lib64/libgobject-2.0.so.0 #47 0x00007ffff2de4ff7 in _g_closure_invoke_va () from /usr/lib/../lib64/libgobject-2.0.so.0 #48 0x00007ffff2e002f9 in g_signal_emit_valist () from /usr/lib/../lib64/libgobject-2.0.so.0 #49 0x00007ffff2e014cf in g_signal_emit () from /usr/lib/../lib64/libgobject-2.0.so.0 #50 0x00000000004c1736 in ags_thread_run (thread=0x902fd0) at ./src/ags/thread/ags_thread.c:1914 #51 0x00000000004c1a17 in ags_thread_loop (ptr=<optimized out>) at ./src/ags/thread/ags_thread.c:1804 #52 0x00007ffff245f032 in start_thread (arg=0x7fffeec86700) at pthread_create.c:309 #53 0x00007ffff03b3d0d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 (gdb)