title: Using Twisted Deferreds with parallel callbacks, when each is given a different argument
body: <p>I want to create a deferred as follows:</p>
  
  <p><code>f1(x1)</code> and <code>f2(x2)</code> are performed in parallel (so to speak)
  and after they finish, I run <code>f3()</code>
  If I had the same parameters, I'd run:</p>
  
  <pre><code>d = Deferred()
  d.addCallbacks(f1)
  d.addCallbacks(f2)
  d.addCallback(lambda x: f3())
  d.callback(x1)
  </code></pre>
  
  <p>So that I pass <code>x1</code> to both <code>f1</code> and <code>f2</code>. But I need <code>f1</code> to get <code>x1</code> and so forth.</p>
  
  <p>How can I do this?</p>
  
  <p>Thanks.</p>