before refactor

This commit is contained in:
Loic Coenen
2026-05-02 14:07:47 +00:00
parent 6ca2a4c01a
commit 6691990787
94 changed files with 39 additions and 221 deletions

View File

@@ -1,15 +0,0 @@
#ifndef TUI_H
#define TUI_H
#include "engine.h"
// Initialize TUI
void tui_init(Engine *engine);
// Run the TUI main loop
void tui_run(Engine *engine);
// Cleanup TUI
void tui_cleanup(void);
#endif // TUI_H

View File

@@ -1,9 +0,0 @@
#ifndef CLI_H
#define CLI_H
#include "engine.h"
int cli_process_line(Engine *engine, const char *line);
void cli_run(Engine *engine);
#endif /* CLI_H */

View File

@@ -1,28 +0,0 @@
CC = gcc
CFLAGS = -Wall -Wextra -std=c99 -D_POSIX_C_SOURCE=200809L
LDFLAGS = -ljack -lm
all: jack-looper test_engine
jack-looper: main.o engine.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
test_engine: test_engine.o engine.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
main.o: main.c engine.h
$(CC) $(CFLAGS) -c -o $@ $<
engine.o: engine.c engine.h
$(CC) $(CFLAGS) -c -o $@ $<
test_engine.o: test_engine.c engine.h
$(CC) $(CFLAGS) -c -o $@ $<
.PHONY: all clean test
clean:
rm -f *.o jack-looper test_engine
test: test_engine
./test_engine

1
cli.c
View File

@@ -1,5 +1,4 @@
#include "cli.h"
#include "wav_io.h"
#include <stdio.h>
#include <string.h>
#include <strings.h>

BIN
cli.o
View File

Binary file not shown.

BIN
engine.o
View File

Binary file not shown.

47
err.log
View File

@@ -1,47 +0,0 @@
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
View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

BIN
main.o
View File

Binary file not shown.

View File

@@ -1,5 +1,5 @@
CC = gcc
CFLAGS = -Wall -Wextra -std=c99 -D_POSIX_C_SOURCE=200809L -Ilib -fsanitize=thread -g
CFLAGS = -Wall -Wextra -std=c99 -D_POSIX_C_SOURCE=200809L -Ilib
LDFLAGS = -ljack -lm -lncurses -lpthread
all: jack-looper test_engine test_tui test_gui test_cli test_stress test_wav_io

View File

Binary file not shown.

View File

Binary file not shown.

BIN
samples/clip_11.wav Normal file
View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

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
samples/clip_24.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_25.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_26.wav Normal file
View File

Binary file not shown.

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
samples/clip_30.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_31.wav Normal file
View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

BIN
samples/clip_34.wav Normal file
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
samples/clip_38.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_39.wav Normal file
View File

Binary file not shown.

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
samples/clip_43.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_44.wav Normal file
View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

BIN
samples/clip_47.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_48.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_49.wav Normal file
View File

Binary file not shown.

View File

Binary file not shown.

BIN
samples/clip_50.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_51.wav Normal file
View File

Binary file not shown.

View File

Binary file not shown.

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
samples/clip_57.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_58.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_59.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_6.wav Normal file
View File

Binary file not shown.

BIN
samples/clip_60.wav Normal file
View File

Binary file not shown.

View File

Binary file not shown.

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_cli
View File

Binary file not shown.

View File

Binary file not shown.

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_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.

View File

Binary file not shown.

View File

Binary file not shown.

0
thread_safety_issue Normal file
View File

View File

Binary file not shown.

View File

@@ -1,66 +1,17 @@
==================
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):
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 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:
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 0x5598ba987440 (jack-looper+0x21114)
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)
@@ -72,11 +23,43 @@ WARNING: ThreadSanitizer: data race (pid=928821)
#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:
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 3 warnings
==================
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

View File

@@ -1,65 +0,0 @@
==================
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
View File

Binary file not shown.

BIN
wav_io.o
View File

Binary file not shown.