title: Why sometimes do I have EXC_BAD_ACCESS when called from DIspatchQueue?
body: <p>In following code:</p>
  <pre><code>class DispatchQueuer: DispatchQueuerable {
      private let queue: DispatchQueue
  
      // MARK: - Initialization
  
      init(queue: DispatchQueue) {
          self.queue = queue
      }
      func asyncBackground(block: @escaping () -&gt; Void) {
          DispatchQueue(label: &quot;&quot;, qos: .background).async {
              block() //EXC_BAD_ACCESS
          }
      }
  }
  </code></pre>
  <p>Why it happens?</p>
  <p>I use it the following way:</p>
  <pre><code>    private let dispatchQueuer: DispatchQueuerable
      dispatchQueuer.asyncBackground { [weak self] in
          self?.setupTags()
          self?.setupSuppliers()
          self?.dispatchQueuer.asyncMain {
              completion?()
          }
      }
  </code></pre>