     }
     
     public func invalidate() {
-
-        dispatch_async(dispatch_get_main_queue()) {
+    
+        async_main_safe {
             self.updateWithoutAnimate()
         }
     }

import UIKit


protocol TableElementProtocol: NSObjectProtocol {

    class var identifier: String { get }


    func addTransaction(t: (Processor, NSKeyValueChange, Int)) {

        async_main_safe {
            if self.displayLink == nil {
                self.displayLink = CADisplayLink(target: self, selector: "update")
                self.displayLink?.frameInterval = 20
