X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fstream.c;h=b0e97f9ff5b3553153cf72cd68e0073b84b8057f;hb=0c230096e95470b4c96141220d5be848cb47be39;hp=f6abec64885e4718783485df6a72e14efd9d185d;hpb=cbd4cb7f8c62b2ba51329a4cb082a96115a7529d;p=rodin%2Fchimara.git diff --git a/libchimara/stream.c b/libchimara/stream.c index f6abec6..b0e97f9 100644 --- a/libchimara/stream.c +++ b/libchimara/stream.c @@ -24,24 +24,8 @@ stream_new_common(glui32 rock) /* Add it to the global stream list */ glk_data->stream_list = g_list_prepend(glk_data->stream_list, str); str->stream_list = glk_data->stream_list; - - return str; -} -/* Internal function: stream closing stuff that is safe to call from either the - main thread or the Glk thread. */ -void -trash_stream_thread_independent(ChimaraGlkPrivate *glk_data, strid_t str) -{ - /* Remove the stream from the global stream list */ - glk_data->stream_list = g_list_delete_link(glk_data->stream_list, str->stream_list); - - /* If it was the current output stream, set that to NULL */ - if(glk_data->current_stream == str) - glk_data->current_stream = NULL; - - str->magic = MAGIC_FREE; - g_free(str); + return str; } /* Internal function: Stuff to do upon closing any type of stream. Call only @@ -71,7 +55,15 @@ stream_close_common(strid_t str, stream_result_t *result) result->writecount = str->write_count; } - trash_stream_thread_independent(glk_data, str); + /* Remove the stream from the global stream list */ + glk_data->stream_list = g_list_delete_link(glk_data->stream_list, str->stream_list); + + /* If it was the current output stream, set that to NULL */ + if(glk_data->current_stream == str) + glk_data->current_stream = NULL; + + str->magic = MAGIC_FREE; + g_free(str); } /**