fix: use atomic loads for clip state and buffer_size in engine_process_commands

Co-authored-by: aider (deepseek/deepseek-coder) <aider@aider.chat>
This commit is contained in:
Loic Coenen
2026-05-02 11:23:00 +00:00
parent b6cea54a89
commit 6ca2a4c01a
67 changed files with 198 additions and 4 deletions

BIN
cli.o Normal file
View File

Binary file not shown.

View File

@@ -473,8 +473,8 @@ void engine_process_commands(Engine *engine) {
action.type = ACTION_TRIGGER_CLIP; action.type = ACTION_TRIGGER_CLIP;
action.index = cmd.index; action.index = cmd.index;
action.value = 0; action.value = 0;
action.previous_state = clip->state; action.previous_state = (ClipState)atomic_load(&clip->state);
action.previous_buffer_size = clip->buffer_size; action.previous_buffer_size = (size_t)atomic_load(&clip->buffer_size);
action.previous_write_position = clip->write_position; action.previous_write_position = clip->write_position;
action.previous_read_position = clip->read_position; action.previous_read_position = clip->read_position;
engine_push_undo_action(engine, &action); engine_push_undo_action(engine, &action);
@@ -566,8 +566,8 @@ void engine_process_commands(Engine *engine) {
action.type = ACTION_RESET_CLIP; action.type = ACTION_RESET_CLIP;
action.index = cmd.index; action.index = cmd.index;
action.value = 0; action.value = 0;
action.previous_state = clip->state; action.previous_state = (ClipState)atomic_load(&clip->state);
action.previous_buffer_size = clip->buffer_size; action.previous_buffer_size = (size_t)atomic_load(&clip->buffer_size);
action.previous_write_position = clip->write_position; action.previous_write_position = clip->write_position;
action.previous_read_position = clip->read_position; action.previous_read_position = clip->read_position;
engine_push_undo_action(engine, &action); engine_push_undo_action(engine, &action);

BIN
engine.o
View File

Binary file not shown.

47
err.log Normal file
View File

@@ -0,0 +1,47 @@
JACK Looper started
Client name: jack-looper
Control channel: 0
Sample rate: 48000 Hz
Press Ctrl+C to stop
[?1049h(B[?7h[?1h[?25l[?1000h                        [?7l [?7h(BJACK Looper - 8x8 Clip Grid(B  0  1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 19 20 21 22 2324 25 26 27 28 29 30 3132 33 34 35 36 37 38 3940 41 42 43 44 45 46 4748 49 50 51 52 53 54 5556 57 58 59 60 61 62 63 (B[?1000l[?12h[?25h
[?1049l
[?1l==================
WARNING: ThreadSanitizer: data race (pid=925560)
Write of size 1 at 0x55e2d55c4e20 by main thread:
#0 engine_stop_save_load_thread /home/jt/code/wheelie/engine.c:400 (jack-looper+0x4d6a) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
#1 engine_stop /home/jt/code/wheelie/engine.c:1115 (jack-looper+0x9883) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
#2 main /home/jt/code/wheelie/main.c:108 (jack-looper+0x2b6c) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
Previous read of size 1 at 0x55e2d55c4e20 by thread T5:
#0 save_load_thread_func /home/jt/code/wheelie/engine.c:303 (jack-looper+0x4c43) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
#1 <null> <null> (libtsan.so.2+0x541b9) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
Location is global 'engine' of size 39432 at 0x55e2d55bb420 (jack-looper+0x24e20)
Thread T5 (tid=925567, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.2+0x5fb47) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 engine_start_save_load_thread /home/jt/code/wheelie/engine.c:388 (jack-looper+0x4cff) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
#2 engine_start /home/jt/code/wheelie/engine.c:1101 (jack-looper+0x979f) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
#3 main /home/jt/code/wheelie/main.c:79 (jack-looper+0x2a25) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
SUMMARY: ThreadSanitizer: data race /home/jt/code/wheelie/engine.c:400 in engine_stop_save_load_thread
==================
==================
WARNING: ThreadSanitizer: unlock of an unlocked mutex (or by a wrong thread) (pid=925560)
#0 pthread_mutex_unlock <null> (libtsan.so.2+0x5c2ec) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libpipewire-0.3.so.0+0xd250) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
Location is heap block of size 1512 at 0x726800001200 allocated by main thread:
#0 calloc <null> (libtsan.so.2+0x9126c) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libpipewire-0.3.so.0+0x6bbef) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x2999) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
Mutex M0 (0x726800001710) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libspa-support.so+0x8bd0) (BuildId: 24a3df4fe9996f17f516f9dca3d5b18bfce2133f)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x2999) (BuildId: 1db9d60d6df5722c162e756ee0458e30040c8571)
SUMMARY: ThreadSanitizer: unlock of an unlocked mutex (or by a wrong thread) (/usr/lib/libpipewire-0.3.so.0+0xd250) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
==================

BIN
gui.o Normal file
View File

Binary file not shown.

View File

Binary file not shown.

BIN
main.o
View File

Binary file not shown.

BIN
samples/clip_0.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_1.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_10.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_12.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_13.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_14.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_15.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_16.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_17.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_18.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_19.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_2.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_20.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_21.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_22.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_23.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_27.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_28.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_29.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_3.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_32.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_33.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_35.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_36.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_37.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_4.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_40.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_41.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_42.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_45.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_46.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_5.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_52.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_53.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_54.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_55.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_56.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_61.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_62.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_63.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_7.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_8.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_9.wav Normal file
View File

Binary file not shown.

BIN
test_cli
View File

Binary file not shown.

View File

Binary file not shown.

BIN
test_double_process Executable file
View File

Binary file not shown.

BIN
test_double_process.o Normal file
View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

BIN
test_gui
View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

BIN
test_tui
View File

Binary file not shown.

View File

Binary file not shown.

BIN
transport.o Normal file
View File

Binary file not shown.

82
tsan_report.log Normal file
View File

@@ -0,0 +1,82 @@
==================
WARNING: ThreadSanitizer: unlock of an unlocked mutex (or by a wrong thread) (pid=928821)
#0 pthread_mutex_unlock <null> (libtsan.so.2+0x5c2ec) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libpipewire-0.3.so.0+0xd250) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
Location is heap block of size 1512 at 0x726800001200 allocated by main thread:
#0 calloc <null> (libtsan.so.2+0x9126c) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libpipewire-0.3.so.0+0x6bbef) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Mutex M0 (0x726800001710) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libspa-support.so+0x8bd0) (BuildId: 24a3df4fe9996f17f516f9dca3d5b18bfce2133f)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
SUMMARY: ThreadSanitizer: unlock of an unlocked mutex (or by a wrong thread) (/usr/lib/libpipewire-0.3.so.0+0xd250) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
==================
==================
WARNING: ThreadSanitizer: data race (pid=928821)
Read of size 8 at 0x5598ba988108 by thread T4 (mutexes: write M0, write M1):
#0 engine_process_commands /home/jt/code/wheelie/engine.c:453 (jack-looper+0x64b4) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#1 process_callback /home/jt/code/wheelie/engine.c:24 (jack-looper+0x3c4f) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#2 <null> <null> (libjack.so.0+0x1fc6a) (BuildId: a070bcfa4955ac5fd8a632489cd56f534a7dfc66)
Previous write of size 4 at 0x5598ba988108 by main thread:
#0 engine_submit_command /home/jt/code/wheelie/engine.c:429 (jack-looper+0x62ad) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#1 engine_transport_toggle_play /home/jt/code/wheelie/engine.c:1176 (jack-looper+0xb9dd) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#2 tui_run /home/jt/code/wheelie/tui.c:694 (jack-looper+0xe81e) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#3 main /home/jt/code/wheelie/main.c:95 (jack-looper+0x3b86) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Location is global 'engine' of size 39432 at 0x5598ba987440 (jack-looper+0x21108)
Mutex M0 (0x726800001710) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libspa-support.so+0x8bd0) (BuildId: 24a3df4fe9996f17f516f9dca3d5b18bfce2133f)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Mutex M1 (0x728400000550) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 jack_client_open <null> (libjack.so.0+0x1d691) (BuildId: a070bcfa4955ac5fd8a632489cd56f534a7dfc66)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Thread T4 'data-loop.0' (tid=928826, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.2+0x5fb47) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libpipewire-0.3.so.0+0x90c47) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
#2 main /home/jt/code/wheelie/main.c:79 (jack-looper+0x3a85) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
SUMMARY: ThreadSanitizer: data race /home/jt/code/wheelie/engine.c:453 in engine_process_commands
==================
==================
WARNING: ThreadSanitizer: data race (pid=928821)
Read of size 4 at 0x5598ba988114 by thread T4 (mutexes: write M0, write M1):
#0 engine_process_commands /home/jt/code/wheelie/engine.c:453 (jack-looper+0x64b4) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#1 process_callback /home/jt/code/wheelie/engine.c:24 (jack-looper+0x3c4f) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#2 <null> <null> (libjack.so.0+0x1fc6a) (BuildId: a070bcfa4955ac5fd8a632489cd56f534a7dfc66)
Previous write of size 4 at 0x5598ba988114 by main thread:
#0 engine_submit_command /home/jt/code/wheelie/engine.c:429 (jack-looper+0x62ad) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#1 engine_reset_clip /home/jt/code/wheelie/engine.c:1137 (jack-looper+0xb748) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#2 tui_run /home/jt/code/wheelie/tui.c:644 (jack-looper+0xe62a) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#3 main /home/jt/code/wheelie/main.c:95 (jack-looper+0x3b86) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Location is global 'engine' of size 39432 at 0x5598ba987440 (jack-looper+0x21114)
Mutex M0 (0x726800001710) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libspa-support.so+0x8bd0) (BuildId: 24a3df4fe9996f17f516f9dca3d5b18bfce2133f)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Mutex M1 (0x728400000550) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 jack_client_open <null> (libjack.so.0+0x1d691) (BuildId: a070bcfa4955ac5fd8a632489cd56f534a7dfc66)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Thread T4 'data-loop.0' (tid=928826, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.2+0x5fb47) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libpipewire-0.3.so.0+0x90c47) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
#2 main /home/jt/code/wheelie/main.c:79 (jack-looper+0x3a85) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
SUMMARY: ThreadSanitizer: data race /home/jt/code/wheelie/engine.c:453 in engine_process_commands
==================
ThreadSanitizer: reported 3 warnings

65
tsan_report.log.928888 Normal file
View File

@@ -0,0 +1,65 @@
==================
WARNING: ThreadSanitizer: data race (pid=928888)
Read of size 4 at 0x56251621f114 by thread T4 (mutexes: write M0, write M1):
#0 engine_process_commands /home/jt/code/wheelie/engine.c:453 (jack-looper+0x64b4) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#1 process_callback /home/jt/code/wheelie/engine.c:24 (jack-looper+0x3c4f) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#2 <null> <null> (libjack.so.0+0x1fc6a) (BuildId: a070bcfa4955ac5fd8a632489cd56f534a7dfc66)
Previous write of size 4 at 0x56251621f114 by main thread:
#0 engine_submit_command /home/jt/code/wheelie/engine.c:429 (jack-looper+0x62ad) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#1 engine_reset_clip /home/jt/code/wheelie/engine.c:1137 (jack-looper+0xb748) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#2 tui_run /home/jt/code/wheelie/tui.c:644 (jack-looper+0xe62a) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#3 main /home/jt/code/wheelie/main.c:95 (jack-looper+0x3b86) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Location is global 'engine' of size 39432 at 0x56251621e440 (jack-looper+0x21114)
Mutex M0 (0x726800001710) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libspa-support.so+0x8bd0) (BuildId: 24a3df4fe9996f17f516f9dca3d5b18bfce2133f)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Mutex M1 (0x728400000550) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 jack_client_open <null> (libjack.so.0+0x1d691) (BuildId: a070bcfa4955ac5fd8a632489cd56f534a7dfc66)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Thread T4 'data-loop.0' (tid=928893, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.2+0x5fb47) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libpipewire-0.3.so.0+0x90c47) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
#2 main /home/jt/code/wheelie/main.c:79 (jack-looper+0x3a85) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
SUMMARY: ThreadSanitizer: data race /home/jt/code/wheelie/engine.c:453 in engine_process_commands
==================
==================
WARNING: ThreadSanitizer: data race (pid=928888)
Read of size 8 at 0x56251621f120 by thread T4 (mutexes: write M0, write M1):
#0 engine_process_commands /home/jt/code/wheelie/engine.c:453 (jack-looper+0x64b4) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#1 process_callback /home/jt/code/wheelie/engine.c:24 (jack-looper+0x3c4f) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#2 <null> <null> (libjack.so.0+0x1fc6a) (BuildId: a070bcfa4955ac5fd8a632489cd56f534a7dfc66)
Previous write of size 4 at 0x56251621f120 by main thread:
#0 engine_submit_command /home/jt/code/wheelie/engine.c:429 (jack-looper+0x62ad) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#1 engine_transport_toggle_play /home/jt/code/wheelie/engine.c:1176 (jack-looper+0xb9dd) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#2 tui_run /home/jt/code/wheelie/tui.c:694 (jack-looper+0xe81e) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
#3 main /home/jt/code/wheelie/main.c:95 (jack-looper+0x3b86) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Location is global 'engine' of size 39432 at 0x56251621e440 (jack-looper+0x21120)
Mutex M0 (0x726800001710) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libspa-support.so+0x8bd0) (BuildId: 24a3df4fe9996f17f516f9dca3d5b18bfce2133f)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Mutex M1 (0x728400000550) created at:
#0 pthread_mutex_init <null> (libtsan.so.2+0x5e23a) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 jack_client_open <null> (libjack.so.0+0x1d691) (BuildId: a070bcfa4955ac5fd8a632489cd56f534a7dfc66)
#2 main /home/jt/code/wheelie/main.c:67 (jack-looper+0x39f9) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
Thread T4 'data-loop.0' (tid=928893, running) created by main thread at:
#0 pthread_create <null> (libtsan.so.2+0x5fb47) (BuildId: f29521f558650bcc384c0178d8c6d0fd49466e29)
#1 <null> <null> (libpipewire-0.3.so.0+0x90c47) (BuildId: 6c351c9a14f26a16201ad1530bbec8bc2bdf8106)
#2 main /home/jt/code/wheelie/main.c:79 (jack-looper+0x3a85) (BuildId: ed86a50eccffb9d745f9683ba76a2748ef793573)
SUMMARY: ThreadSanitizer: data race /home/jt/code/wheelie/engine.c:453 in engine_process_commands
==================
ThreadSanitizer: reported 2 warnings

BIN
tui.o Normal file
View File

Binary file not shown.

BIN
wav_io.o Normal file
View File

Binary file not shown.