{"action":"opened","issue":{"number":371,"created_at":"2011-10-17T05:54:36Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Pip does use separate threads for different resources to speed up spider time while choosing a resource. However, there's a bug which means that that thread pool can only shrink, and never get bigger. This means that if the pool shrinks to 1 thread because a page loads slowly (maybe a project homepage), then all the pages which are added to the pool from that page can only be retrieved by a single thread.\r\n\r\nAdditionally, the initial location count is probably not a particularly good indicator for how many threads we may need.\r\n\r\nCode is pretty self explanatory:\r\nhttps://github.com/pypa/pip/blob/develop/pip/index.py#L212\r\n\r\nThe code should probably use either blocking `get()` and call `task_done()`, or be refactored to use threading Condition objects and `wait()`.","comments":0,"title":"Threaded downloads - thread pool can only get smaller","updated_at":"2011-10-17T05:54:36Z","url":"https://api.github.com/repos/pypa/pip/issues/371","id":1925261,"assignee":null,"milestone":null,"closed_at":null,"user":{"gravatar_id":"a915fcd92529baa70bf3b5d7520576f4","avatar_url":"https://secure.gravatar.com/avatar/a915fcd92529baa70bf3b5d7520576f4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/PaulMcMillan","id":494159,"login":"PaulMcMillan"},"html_url":"https://github.com/pypa/pip/issues/371","labels":[],"state":"open"},"legacy":{"number":371,"action":"opened","issue":1925261}}