         guard !scrollView.isDragging, !scrollView.isTracking, !scrollView.isDecelerating else { return }
         let offsetX = scrollView.contentOffset.x
         
-        _transitionQueue.async { autoreleasepool { [unowned self] in
+        autoreleasepool { _transitionQueue.async { autoreleasepool { [unowned self] in
             for (index, titleItem) in titleItems.enumerated() {
                 let offsetPosition      = _offsetPositionsUpToEndIndex[index]
                 let selected            = (offsetPosition >= offsetX)

                    : (_offsetPositionsUpToEndIndex[titleItems.index(after: index)] - offsetPosition)
                
                guard fabs(offsetPosition - offsetX) <= offsetPositionDelta else {
                    titleItem.selected = false; continue
                }
                
                let relativeOffsetX = selected

                
                self.didUpdateSelectedIndex?(transitionPercent > 0.5 ? (selected ? index : titleItems.index(after: index)) : (selected ? titleItems.index(before: index) : index))
            }
        } } }
    }
}
