+ vlc_mutex_init( &p_snapshot->p_mutex );
+ vlc_cond_init( &p_snapshot->p_condvar );
+
+ vlc_mutex_lock( &p_snapshot->p_mutex );
+ mutex_cleanup_push( &p_snapshot->p_mutex );
+
+ /* Use p_snapshot address as sentinel against spurious vlc_object_wait wakeups.
+
+ If a legitimate wakeup occurs, then p_snapshot->p_data will hold either
+ NULL (in case of error) or a pointer to valid data. */
+ p_snapshot->p_data = ( char* )p_snapshot;
+