mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
module-netjack2: stop follower when setup io errors out
Just disable the data socket when it errors out but stop the follower when the setup socket is in error. This makes shutdown work properly when the setup socket is stopped, which is what actually happens eventually.
This commit is contained in:
parent
b5a7a1f224
commit
0062d64b3a
1 changed files with 2 additions and 8 deletions
|
|
@ -392,11 +392,8 @@ static void follower_free(struct follower *follower)
|
|||
free(follower);
|
||||
}
|
||||
|
||||
static int
|
||||
do_stop_follower(struct spa_loop *loop,
|
||||
bool async, uint32_t seq, const void *data, size_t size, void *user_data)
|
||||
static int stop_follower(struct follower *follower)
|
||||
{
|
||||
struct follower *follower = user_data;
|
||||
follower->started = false;
|
||||
if (follower->source.filter)
|
||||
pw_filter_set_active(follower->source.filter, false);
|
||||
|
|
@ -423,12 +420,10 @@ static void
|
|||
on_setup_io(void *data, int fd, uint32_t mask)
|
||||
{
|
||||
struct follower *follower = data;
|
||||
struct impl *impl = follower->impl;
|
||||
|
||||
if (mask & (SPA_IO_ERR | SPA_IO_HUP)) {
|
||||
pw_log_warn("error:%08x", mask);
|
||||
pw_loop_destroy_source(impl->main_loop, follower->setup_socket);
|
||||
follower->setup_socket = NULL;
|
||||
stop_follower(follower);
|
||||
return;
|
||||
}
|
||||
if (mask & SPA_IO_IN) {
|
||||
|
|
@ -473,7 +468,6 @@ on_data_io(void *data, int fd, uint32_t mask)
|
|||
pw_log_warn("error:%08x", mask);
|
||||
pw_loop_destroy_source(impl->data_loop, follower->socket);
|
||||
follower->socket = NULL;
|
||||
pw_loop_invoke(impl->main_loop, do_stop_follower, 1, NULL, 0, false, follower);
|
||||
return;
|
||||
}
|
||||
if (mask & SPA_IO_IN) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue