         
         let nanoSeconds: Int64 = Int64(Double(NSEC_PER_SEC) * time);
         let when = DispatchTime.now() + Double(nanoSeconds) / Double(NSEC_PER_SEC)
-        DispatchQueue.main.after(when: when, execute: {
+
+        DispatchQueue.main.asyncAfter(deadline: when, execute: {
             action()
         })
     }
-    
 }

                
                // Item update for the old section order, because the sections
                // are not moved yet
                for (oldSectionIndex, itemDiff) in itemDiffs.sorted(isOrderedBefore: { $0.0 < $1.0 }) {
                    
                    // Call item handler functions
                    self.itemUpdate?(

        self.resultIsOutOfDate = false

        // Do the diffing on a background thread
        let backgroundQueue = DispatchQueue.global(qos: .background)

        backgroundQueue.async {

