diff options
author | Lennart Poettering <lennart@poettering.net> | 2006-04-24 19:29:15 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2006-04-24 19:29:15 +0000 |
commit | 820c118f9c57c7a7767765efc802502632ad8da2 (patch) | |
tree | dd695cb6183b20ac997907d9c556d98457d827e4 /src/polyp/scache.c | |
parent | d26621371e6bf5040fe833f046ff81a1c7cac94b (diff) |
* rework reference counting in the client libraries: now refcounting goes
strictly "one-way" - the "bigger" object refcounts the "smaller" one, never the
other way round.
* when registering for a reply packet in pdispatch, specify a function that is
called when the pdispatch object is destroyed but the reply hasn't yet been
recieved.
* move prototype of pa_free_cb from stream.h to def.h
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@794 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/polyp/scache.c')
-rw-r--r-- | src/polyp/scache.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/polyp/scache.c b/src/polyp/scache.c index 2b9e9c8f..22d8a545 100644 --- a/src/polyp/scache.c +++ b/src/polyp/scache.c @@ -53,7 +53,7 @@ int pa_stream_connect_upload(pa_stream *s, size_t length) { pa_tagstruct_put_channel_map(t, &s->channel_map); pa_tagstruct_putu32(t, length); pa_pstream_send_tagstruct(s->context->pstream, t); - pa_pdispatch_register_reply(s->context->pdispatch, tag, DEFAULT_TIMEOUT, pa_create_stream_callback, s); + pa_pdispatch_register_reply(s->context->pdispatch, tag, DEFAULT_TIMEOUT, pa_create_stream_callback, s, NULL); pa_stream_set_state(s, PA_STREAM_CREATING); @@ -74,7 +74,7 @@ int pa_stream_finish_upload(pa_stream *s) { t = pa_tagstruct_command(s->context, PA_COMMAND_FINISH_UPLOAD_STREAM, &tag); pa_tagstruct_putu32(t, s->channel); pa_pstream_send_tagstruct(s->context->pstream, t); - pa_pdispatch_register_reply(s->context->pdispatch, tag, DEFAULT_TIMEOUT, pa_stream_disconnect_callback, s); + pa_pdispatch_register_reply(s->context->pdispatch, tag, DEFAULT_TIMEOUT, pa_stream_disconnect_callback, s, NULL); pa_stream_unref(s); return 0; @@ -103,7 +103,7 @@ pa_operation *pa_context_play_sample(pa_context *c, const char *name, const char pa_tagstruct_putu32(t, volume); pa_tagstruct_puts(t, name); pa_pstream_send_tagstruct(c->pstream, t); - pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o)); + pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref); return o; } @@ -124,7 +124,7 @@ pa_operation* pa_context_remove_sample(pa_context *c, const char *name, pa_conte t = pa_tagstruct_command(c, PA_COMMAND_REMOVE_SAMPLE, &tag); pa_tagstruct_puts(t, name); pa_pstream_send_tagstruct(c->pstream, t); - pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o)); + pa_pdispatch_register_reply(c->pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref); return o; } |