{"action":"created","issue":{"url":"https://api.github.com/repos/servo/servo/issues/4271","labels_url":"https://api.github.com/repos/servo/servo/issues/4271/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/4271/comments","events_url":"https://api.github.com/repos/servo/servo/issues/4271/events","html_url":"https://github.com/servo/servo/pull/4271","id":51207781,"number":4271,"title":"compositing: Move compositing off the main thread.","user":{"login":"pcwalton","id":157897,"avatar_url":"https://avatars.githubusercontent.com/u/157897?v=3","gravatar_id":"","url":"https://api.github.com/users/pcwalton","html_url":"https://github.com/pcwalton","followers_url":"https://api.github.com/users/pcwalton/followers","following_url":"https://api.github.com/users/pcwalton/following{/other_user}","gists_url":"https://api.github.com/users/pcwalton/gists{/gist_id}","starred_url":"https://api.github.com/users/pcwalton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pcwalton/subscriptions","organizations_url":"https://api.github.com/users/pcwalton/orgs","repos_url":"https://api.github.com/users/pcwalton/repos","events_url":"https://api.github.com/users/pcwalton/events{/privacy}","received_events_url":"https://api.github.com/users/pcwalton/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/servo/servo/labels/A-gfx/compositing","name":"A-gfx/compositing","color":"d7e102"},{"url":"https://api.github.com/repos/servo/servo/labels/S-needs%20code%20changes","name":"S-needs code changes","color":"d4c5f9"},{"url":"https://api.github.com/repos/servo/servo/labels/S-needs%20rebase","name":"S-needs rebase","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2014-12-07T05:12:47Z","updated_at":"2015-01-29T03:59:37Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/servo/servo/pulls/4271","html_url":"https://github.com/servo/servo/pull/4271","diff_url":"https://github.com/servo/servo/pull/4271.diff","patch_url":"https://github.com/servo/servo/pull/4271.patch"},"body":"Because the compositor no longer runs on the main thread, it can now use\r\nplain old Rust channels for communication, and the main thread instead\r\nreceives the special \"proxy\" treatment. This change also makes the\r\ncompositor entirely optional; in headless mode, no compositor is started\r\nat all.\r\n\r\nThis change will allow us to support multiple windows, since those must\r\nhave separate compositors. It should also improve our event dispatch\r\nlatency, since even less runs on the main thread, and we can handle\r\nevents while waiting for buffer swaps.\r\n\r\nAdditionally, this patch refactors many of the task startup functions,\r\nwhich took too many arguments, to use initialization structures. This\r\nmakes the code easier to read.\r\n\r\nCloses #4228.\r\n\r\nr? @glennw"},"comment":{"url":"https://api.github.com/repos/servo/servo/issues/comments/71965452","html_url":"https://github.com/servo/servo/pull/4271#issuecomment-71965452","issue_url":"https://api.github.com/repos/servo/servo/issues/4271","id":71965452,"user":{"login":"pcwalton","id":157897,"avatar_url":"https://avatars.githubusercontent.com/u/157897?v=3","gravatar_id":"","url":"https://api.github.com/users/pcwalton","html_url":"https://github.com/pcwalton","followers_url":"https://api.github.com/users/pcwalton/followers","following_url":"https://api.github.com/users/pcwalton/following{/other_user}","gists_url":"https://api.github.com/users/pcwalton/gists{/gist_id}","starred_url":"https://api.github.com/users/pcwalton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pcwalton/subscriptions","organizations_url":"https://api.github.com/users/pcwalton/orgs","repos_url":"https://api.github.com/users/pcwalton/repos","events_url":"https://api.github.com/users/pcwalton/events{/privacy}","received_events_url":"https://api.github.com/users/pcwalton/received_events","type":"User","site_admin":false},"created_at":"2015-01-29T03:59:37Z","updated_at":"2015-01-29T03:59:37Z","body":"@glennw Glutin has landed while this patch was outstanding. Is there a way to push events to the event queue from another thread with it?"}}