08.02.12 20:11, Dan Dennedy написав(ла): [...] > Well, the more critical goal was to fix a segfault, but I see your > point now about using "running" to cleanup "thread." I did not like > your conversion of the thread property from data to a int64; do you > know how data properties provide destruction? Also, my testing > revealed some additional pointer checks required inside > consumer_thread. Comment on this applied to head: > > diff --git a/src/modules/avformat/consumer_avformat.c > b/src/modules/avformat/consumer_avformat.c > index fb52df3..cd63431 100644 > --- a/src/modules/avformat/consumer_avformat.c > +++ b/src/modules/avformat/consumer_avformat.c > @@ -350,18 +350,18 @@ static int consumer_stop( mlt_consumer consumer ) > { > // Get the properties > mlt_properties properties = MLT_CONSUMER_PROPERTIES( consumer ); > + pthread_t *thread = mlt_properties_get_data( properties, "thread", NULL > ); > > // Check that we're running > - if ( mlt_properties_get_int( properties, "running" ) ) > + if ( thread ) > { > - // Get the thread > - pthread_t *thread = mlt_properties_get_data( properties, > "thread", NULL ); > - > // Stop the thread > mlt_properties_set_int( properties, "running", 0 ); > > // Wait for termination > pthread_join( *thread, NULL ); what about swapping two lines above - set flag running after pthread_join return?
-- ________________________________________ Maksym Veremeyenko ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Mlt-devel mailing list Mlt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mlt-devel