{"action":"created","issue":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1471","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1471/labels{/name}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1471/comments","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1471/events","html_url":"https://github.com/mapbox/mapbox-gl-native/issues/1471","id":74319255,"number":1471,"title":"Worker pool should share queue instead of round-robin distribution","user":{"login":"kkaefer","id":52399,"avatar_url":"https://avatars.githubusercontent.com/u/52399?v=3","gravatar_id":"","url":"https://api.github.com/users/kkaefer","html_url":"https://github.com/kkaefer","followers_url":"https://api.github.com/users/kkaefer/followers","following_url":"https://api.github.com/users/kkaefer/following{/other_user}","gists_url":"https://api.github.com/users/kkaefer/gists{/gist_id}","starred_url":"https://api.github.com/users/kkaefer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kkaefer/subscriptions","organizations_url":"https://api.github.com/users/kkaefer/orgs","repos_url":"https://api.github.com/users/kkaefer/repos","events_url":"https://api.github.com/users/kkaefer/events{/privacy}","received_events_url":"https://api.github.com/users/kkaefer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-05-08T10:41:20Z","updated_at":"2015-06-05T07:29:07Z","closed_at":null,"body":"From #1455:\r\n\r\n> 4ccf246 intensified this problem by changing our worker pool from a shared queue to an individual queue for every thread with round-robin distribution of WorkRequests. This means there can be situations where a thread's work queue gets clogged up with work items while other workers would be available to process them."},"comment":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/comments/109190596","html_url":"https://github.com/mapbox/mapbox-gl-native/issues/1471#issuecomment-109190596","issue_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/1471","id":109190596,"user":{"login":"kkaefer","id":52399,"avatar_url":"https://avatars.githubusercontent.com/u/52399?v=3","gravatar_id":"","url":"https://api.github.com/users/kkaefer","html_url":"https://github.com/kkaefer","followers_url":"https://api.github.com/users/kkaefer/followers","following_url":"https://api.github.com/users/kkaefer/following{/other_user}","gists_url":"https://api.github.com/users/kkaefer/gists{/gist_id}","starred_url":"https://api.github.com/users/kkaefer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kkaefer/subscriptions","organizations_url":"https://api.github.com/users/kkaefer/orgs","repos_url":"https://api.github.com/users/kkaefer/repos","events_url":"https://api.github.com/users/kkaefer/events{/privacy}","received_events_url":"https://api.github.com/users/kkaefer/received_events","type":"User","site_admin":false},"created_at":"2015-06-05T07:29:07Z","updated_at":"2015-06-05T07:29:07Z","body":"> This would be different.\r\n\r\nIt may be different, but it'll improve the speed of the app quite a bit by using the cores more effectively.\r\n\r\n> I want to introduce an affinity between a map thread tile and a particular worker thread, like js has, so that there can be persistent data associated with the tile on the worker thread.\r\n\r\nThis may make sense in a JS environment where you have to copy over data to the workers, but in C++ we can move this data between threads for free, so an affinity is not required. I also think it's not desired since it may cause situations where tile distribution across threads is out of balance, requiring more work."}}