      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{
+                DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).sync{
                     imageView.updateCurrentImage()
                 }
             }
-            
+
         }
     }
     

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

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