         if self.totalGifSize > memoryLimit && self.haveCache {
             self.haveCache = false
             for imageView in self.displayViews{
-                DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).async{
+                DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).sync{
                     imageView.updateCache()
                 }
             }

     This is what create the animation.
     */
    @objc func updateImageView(){
        
        for imageView in self.displayViews {
            
            DispatchQueue.main.async{
                imageView.image = imageView.currentImage
            }
            if imageView.isAnimatingGif() {
                DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).async{
                    imageView.updateCurrentImage()
                }
            }
            
        }
    }
    

                if self.totalGifSize < memoryLimit && !self.haveCache {
                    self.haveCache = true
                    for imageView in self.displayViews{
                        DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).sync{
                            imageView.updateCache()
                        }
                    }
