Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jesustorresdev/e28c3a07d5ed582c074c0cef4cad4f36 to your computer and use it in GitHub Desktop.
Save jesustorresdev/e28c3a07d5ed582c074c0cef4cad4f36 to your computer and use it in GitHub Desktop.
void FiniteBuffer::insertFrame(const QImage& frame)
{
// Bloquear el cerrojo. Es lo mismo que hacer manualmente:
// mutex_.lock()
QMutexLocker lock(&mutex);
// El código del productor a partir de este punto no se
// ejecutará si el consumidor ha bloqueado el cerrojo
// primero.
// Insertar el frame en la cola
buffer_[++bufferTail_ % buffer_.size()] = frame;
bufferNotEmpty_.wakeAll(); // Despertar al consumidor si
// esperaba por más frames.
// El cerrojo se libera automáticamente al salir de la función
// y destruirse lock. Es lo mismo que hacer manualmente:
// mutex_.unlock()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment