<p>Use an Osmium worker pool instead of std::async and restrict the number of parallel instances to the number requested on the command line. Use the same pool for middle and output tables and make sure that the option --disable-parallel-indexing is also respected for middle tables.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/openstreetmap/osm2pgsql/pull/814'>https://github.com/openstreetmap/osm2pgsql/pull/814</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>rework multi-threading during indexing</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-0">middle-pgsql.cpp</a>
    (25)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-1">middle-pgsql.hpp</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-2">middle-ram.cpp</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-3">middle-ram.hpp</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-4">middle.hpp</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-5">osmdata.cpp</a>
    (40)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-6">output-gazetteer.cpp</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-7">output-gazetteer.hpp</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-8">output-multi.cpp</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-9">output-multi.hpp</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-10">output-null.cpp</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-11">output-null.hpp</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-12">output-pgsql.cpp</a>
    (24)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-13">output-pgsql.hpp</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-14">output.hpp</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-15">tests/mockups.hpp</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-16">tests/test-middle-flat.cpp</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-17">tests/test-middle-pgsql.cpp</a>
    (21)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/osm2pgsql/pull/814/files#diff-18">tests/test-middle-ram.cpp</a>
    (9)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/openstreetmap/osm2pgsql/pull/814.patch'>https://github.com/openstreetmap/osm2pgsql/pull/814.patch</a></li>
  <li><a href='https://github.com/openstreetmap/osm2pgsql/pull/814.diff'>https://github.com/openstreetmap/osm2pgsql/pull/814.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/osm2pgsql/pull/814">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AD2-7vvZ3Wnt73wq_yMuQUxtMM20Q_1zks5tKSR3gaJpZM4RdYX2">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AD2-7uCTm6gG7-qzi04SR4jSxRezWsd4ks5tKSR3gaJpZM4RdYX2.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/openstreetmap/osm2pgsql/pull/814"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/openstreetmap/osm2pgsql","title":"openstreetmap/osm2pgsql","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/openstreetmap/osm2pgsql"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Rework multi-threading during indexing (#814)"}],"action":{"name":"View Pull Request","url":"https://github.com/openstreetmap/osm2pgsql/pull/814"}}}</script>