{"action":"created","issue":{"url":"https://api.github.com/repos/mixxxdj/mixxx/issues/704","labels_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/704/labels{/name}","comments_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/704/comments","events_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/704/events","html_url":"https://github.com/mixxxdj/mixxx/pull/704","id":105681589,"number":704,"title":"Update ControlDoublePrivate <-> ControlObjectSlave to avoid a race conditon. Improves Bug #1406124.","user":{"login":"daschuer","id":1777442,"avatar_url":"https://avatars.githubusercontent.com/u/1777442?v=3","gravatar_id":"","url":"https://api.github.com/users/daschuer","html_url":"https://github.com/daschuer","followers_url":"https://api.github.com/users/daschuer/followers","following_url":"https://api.github.com/users/daschuer/following{/other_user}","gists_url":"https://api.github.com/users/daschuer/gists{/gist_id}","starred_url":"https://api.github.com/users/daschuer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daschuer/subscriptions","organizations_url":"https://api.github.com/users/daschuer/orgs","repos_url":"https://api.github.com/users/daschuer/repos","events_url":"https://api.github.com/users/daschuer/events{/privacy}","received_events_url":"https://api.github.com/users/daschuer/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-09-09T20:49:08Z","updated_at":"2015-09-12T17:41:20Z","closed_at":"2015-09-12T17:28:03Z","pull_request":{"url":"https://api.github.com/repos/mixxxdj/mixxx/pulls/704","html_url":"https://github.com/mixxxdj/mixxx/pull/704","diff_url":"https://github.com/mixxxdj/mixxx/pull/704.diff","patch_url":"https://github.com/mixxxdj/mixxx/pull/704.patch"},"body":"This should Fix Bug https://bugs.launchpad.net/mixxx/+bug/1406124\r\n\r\nI have changed the internal signal/slot connection according to the requested connection, like that:\r\n\r\n    connectValueChanged Auto -> COP = Auto / SCO = Auto\r\n    connectValueChanged Direct -> COP = Direct / SCO = Direct\r\n    connectValueChanged Queued -> COP = Auto / SCO = Queued\r\n    connectValueChanged BlockingQueued -> Assert(false)\r\n\r\nI have also reviewed all occurrence of ControlObjectSlave and it should work now.\r\n\r\nI have removed most manual deletes and scoped pointer in favour of the Qt Object tree delete feature. This offers the best safety since the COS is deleted by its parent object, from which it usually inherits the event queue as well.\r\n\r\nTODO: The deprecated ControlObjectThread suffers the same issue. I think we need to replace it with ControlObjectSlaves.\r\n"},"comment":{"url":"https://api.github.com/repos/mixxxdj/mixxx/issues/comments/139799580","html_url":"https://github.com/mixxxdj/mixxx/pull/704#issuecomment-139799580","issue_url":"https://api.github.com/repos/mixxxdj/mixxx/issues/704","id":139799580,"user":{"login":"rryan","id":26527,"avatar_url":"https://avatars.githubusercontent.com/u/26527?v=3","gravatar_id":"","url":"https://api.github.com/users/rryan","html_url":"https://github.com/rryan","followers_url":"https://api.github.com/users/rryan/followers","following_url":"https://api.github.com/users/rryan/following{/other_user}","gists_url":"https://api.github.com/users/rryan/gists{/gist_id}","starred_url":"https://api.github.com/users/rryan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rryan/subscriptions","organizations_url":"https://api.github.com/users/rryan/orgs","repos_url":"https://api.github.com/users/rryan/repos","events_url":"https://api.github.com/users/rryan/events{/privacy}","received_events_url":"https://api.github.com/users/rryan/received_events","type":"User","site_admin":false},"created_at":"2015-09-12T17:41:20Z","updated_at":"2015-09-12T17:41:20Z","body":"(Since the PR titles go into the merge commit, let's make sure they're informative / descriptive)"}}