History

devaudio-pipewire: destroy stream on close

We were leaking these streams before, which causes pipewire to hang when the user changes the default sink.

Jacob Moody committed 3 years ago

Commit ebe7cc61 parent 45d5ae01 file · +7 −9Browse files

Unified · Split

kern/devaudio-pipewire.c+7−9
@@ -84,17 +84,14 @@ audiodevopen(void) · 83 unmodified lines
84 84
85 lock(&pwstate.lk);85 lock(&pwstate.lk);
86 pwstate.written = 0;86 pwstate.written = 0;
87 if(pwstate.init > 0){87 if(pwstate.init == 0){
88 kproc("pipewire main loop", pwproc, pwstate.loop);88 pw_init(&argc, (char***)&argv);
89 unlock(&pwstate.lk);89 pwstate.init++;
90 return;90 pwstate.loop = pw_main_loop_new(NULL);
91 if(pwstate.loop == NULL)
92 sysfatal("could not create loop");
91 }93 }
92 94
93 pwstate.init++;
94 pw_init(&argc, (char***)&argv);
95 pwstate.loop = pw_main_loop_new(NULL);
96 if(pwstate.loop == NULL)
97 sysfatal("could not create loop");
98 pwstate.output = pw_stream_new_simple(95 pwstate.output = pw_stream_new_simple(
99 pw_main_loop_get_loop(pwstate.loop),96 pw_main_loop_get_loop(pwstate.loop),
100 "drawterm",97 "drawterm",
@@ -139,6 +136,7 @@ void · 38 unmodified lines
139audiodevclose(void)136audiodevclose(void)
140{137{
141 pw_main_loop_quit(pwstate.loop);138 pw_main_loop_quit(pwstate.loop);
139 pw_stream_destroy(pwstate.output);
142}140}
143 141
144int142int

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t