diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-03-04 05:27:49 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-03-04 05:32:26 +0100 |
commit | 341f44fa24dfff910c34e0cd8c4819e88231cff6 (patch) | |
tree | facdcdee70303616e0b3d007af0496d77e3511b5 /src/pulsecore/source.c | |
parent | ecbc320a4c219b40795e0462de6f37d610003c88 (diff) |
fix handling of _suspend_all(), return first failure error code
Diffstat (limited to 'src/pulsecore/source.c')
-rw-r--r-- | src/pulsecore/source.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 476cb5530..cc6dfc403 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -955,8 +955,15 @@ int pa_source_suspend_all(pa_core *c, pa_bool_t suspend) { pa_core_assert_ref(c); - for (source = PA_SOURCE(pa_idxset_first(c->sources, &idx)); source; source = PA_SOURCE(pa_idxset_next(c->sources, &idx))) - ret -= pa_source_suspend(source, suspend) < 0; + for (source = PA_SOURCE(pa_idxset_first(c->sources, &idx)); source; source = PA_SOURCE(pa_idxset_next(c->sources, &idx))) { + int r; + + if (source->monitor_of) + continue; + + if ((r = pa_source_suspend(source, suspend)) < 0) + ret = r; + } return ret; } |