Fixes Coverity CID 709359: Data race condition (MISSING_LOCK)
Locking "self->refresh_mutex".
145 pthread_mutex_lock( &self->refresh_mutex );
consumer_sdl_s.refresh_count is being accessed with lock "self->refresh_mutex" held.
146 self->refresh_count = self->refresh_count <= 0 ? 1 : self->refresh_count + 1;
147 pthread_cond_broadcast( &self->refresh_cond );
148 pthread_mutex_unlock( &self->refresh_mutex );
...
Accessing variable "self->refresh_count" (consumer_sdl_s.refresh_count) requires the consumer_sdl_s.refresh_mutex lock.
478 self->refresh_count = 0;
...
Locking "self->refresh_mutex".
535 pthread_mutex_lock( &self->refresh_mutex );
536 if ( refresh == 0 && self->refresh_count <= 0 )
537 {
538 consumer_play_video( self, frame );
539 pthread_cond_wait( &self->refresh_cond, &self->refresh_mutex );
540 }
541 mlt_frame_close( frame );
consumer_sdl_s.refresh_count is being accessed with lock "self->refresh_mutex" held.
542 self->refresh_count --;
543 pthread_mutex_unlock( &self->refresh_mutex );
int64_t playtime = 0;
struct timespec tm = { 0, 100000 };
// int last_position = -1;
+
+ pthread_mutex_lock( &self->refresh_mutex );
self->refresh_count = 0;
+ pthread_mutex_unlock( &self->refresh_mutex );
// Loop until told not to
while( self->running )