summaryrefslogtreecommitdiffstats
path: root/src/pulsecore
diff options
context:
space:
mode:
Diffstat (limited to 'src/pulsecore')
-rw-r--r--src/pulsecore/sink.c32
-rw-r--r--src/pulsecore/source.c28
2 files changed, 30 insertions, 30 deletions
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
index 38e7d632..dccb34cc 100644
--- a/src/pulsecore/sink.c
+++ b/src/pulsecore/sink.c
@@ -147,21 +147,6 @@ pa_sink* pa_sink_new(
return s;
}
-void pa_sink_put(pa_sink* s) {
- pa_sink_assert_ref(s);
-
- pa_assert(s->state == PA_SINK_INIT);
- pa_assert(s->asyncmsgq);
- pa_assert(s->rtpoll);
-
- s->thread_info.state = s->state = PA_SINK_IDLE;
-
- pa_source_put(s->monitor_source);
-
- pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK | PA_SUBSCRIPTION_EVENT_NEW, s->index);
- pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SINK_NEW_POST], s);
-}
-
static int sink_set_state(pa_sink *s, pa_sink_state_t state) {
int ret;
@@ -196,6 +181,21 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state) {
return 0;
}
+void pa_sink_put(pa_sink* s) {
+ pa_sink_assert_ref(s);
+
+ pa_assert(s->state == PA_SINK_INIT);
+ pa_assert(s->asyncmsgq);
+ pa_assert(s->rtpoll);
+
+ pa_assert_se(sink_set_state(s, PA_SINK_IDLE) == 0);
+
+ pa_source_put(s->monitor_source);
+
+ pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK | PA_SUBSCRIPTION_EVENT_NEW, s->index);
+ pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SINK_NEW_POST], s);
+}
+
void pa_sink_unlink(pa_sink* s) {
pa_bool_t linked;
pa_sink_input *i, *j = NULL;
@@ -806,7 +806,7 @@ unsigned pa_sink_used_by(pa_sink *s) {
int pa_sink_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offset, pa_memchunk *chunk) {
pa_sink *s = PA_SINK(o);
pa_sink_assert_ref(s);
- pa_assert(PA_SINK_LINKED(s->thread_info.state));
+ pa_assert(s->thread_info.state != PA_SINK_UNLINKED);
switch ((pa_sink_message_t) code) {
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c
index 2106edc3..9a6902ae 100644
--- a/src/pulsecore/source.c
+++ b/src/pulsecore/source.c
@@ -124,19 +124,6 @@ pa_source* pa_source_new(
return s;
}
-void pa_source_put(pa_source *s) {
- pa_source_assert_ref(s);
-
- pa_assert(s->state == PA_SINK_INIT);
- pa_assert(s->rtpoll);
- pa_assert(s->asyncmsgq);
-
- s->thread_info.state = s->state = PA_SOURCE_IDLE;
-
- pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE | PA_SUBSCRIPTION_EVENT_NEW, s->index);
- pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SOURCE_NEW_POST], s);
-}
-
static int source_set_state(pa_source *s, pa_source_state_t state) {
int ret;
@@ -171,6 +158,19 @@ static int source_set_state(pa_source *s, pa_source_state_t state) {
return 0;
}
+void pa_source_put(pa_source *s) {
+ pa_source_assert_ref(s);
+
+ pa_assert(s->state == PA_SINK_INIT);
+ pa_assert(s->rtpoll);
+ pa_assert(s->asyncmsgq);
+
+ pa_assert_se(source_set_state(s, PA_SOURCE_IDLE) == 0);
+
+ pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE | PA_SUBSCRIPTION_EVENT_NEW, s->index);
+ pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SOURCE_NEW_POST], s);
+}
+
void pa_source_unlink(pa_source *s) {
pa_bool_t linked;
pa_source_output *o, *j = NULL;
@@ -460,7 +460,7 @@ unsigned pa_source_used_by(pa_source *s) {
int pa_source_process_msg(pa_msgobject *object, int code, void *userdata, int64_t offset, pa_memchunk *chunk) {
pa_source *s = PA_SOURCE(object);
pa_source_assert_ref(s);
- pa_assert(PA_SOURCE_LINKED(s->thread_info.state));
+ pa_assert(s->thread_info.state != PA_SOURCE_UNLINKED);
switch ((pa_source_message_t) code) {
case PA_SOURCE_MESSAGE_ADD_OUTPUT: {