{"action":"created","issue":{"url":"https://api.github.com/repos/m-labs/artiq/issues/25","labels_url":"https://api.github.com/repos/m-labs/artiq/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/m-labs/artiq/issues/25/comments","events_url":"https://api.github.com/repos/m-labs/artiq/issues/25/events","html_url":"https://github.com/m-labs/artiq/issues/25","id":89406651,"number":25,"title":"RPC call to Thorlabs driver will return before the commanded action is complete","user":{"login":"jboulder","id":5688774,"avatar_url":"https://avatars.githubusercontent.com/u/5688774?v=3","gravatar_id":"","url":"https://api.github.com/users/jboulder","html_url":"https://github.com/jboulder","followers_url":"https://api.github.com/users/jboulder/followers","following_url":"https://api.github.com/users/jboulder/following{/other_user}","gists_url":"https://api.github.com/users/jboulder/gists{/gist_id}","starred_url":"https://api.github.com/users/jboulder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jboulder/subscriptions","organizations_url":"https://api.github.com/users/jboulder/orgs","repos_url":"https://api.github.com/users/jboulder/repos","events_url":"https://api.github.com/users/jboulder/events{/privacy}","received_events_url":"https://api.github.com/users/jboulder/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"fallen","id":151032,"avatar_url":"https://avatars.githubusercontent.com/u/151032?v=3","gravatar_id":"","url":"https://api.github.com/users/fallen","html_url":"https://github.com/fallen","followers_url":"https://api.github.com/users/fallen/followers","following_url":"https://api.github.com/users/fallen/following{/other_user}","gists_url":"https://api.github.com/users/fallen/gists{/gist_id}","starred_url":"https://api.github.com/users/fallen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fallen/subscriptions","organizations_url":"https://api.github.com/users/fallen/orgs","repos_url":"https://api.github.com/users/fallen/repos","events_url":"https://api.github.com/users/fallen/events{/privacy}","received_events_url":"https://api.github.com/users/fallen/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2015-06-18T21:50:54Z","updated_at":"2015-06-21T00:24:07Z","closed_at":null,"body":"move_home is blocking\r\nmove_jog(direction, async=False) has blocking option\r\nmove_absolute() does not have blocking option\r\nmove_relative() does not have blocking option\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/m-labs/artiq/issues/comments/113844339","html_url":"https://github.com/m-labs/artiq/issues/25#issuecomment-113844339","issue_url":"https://api.github.com/repos/m-labs/artiq/issues/25","id":113844339,"user":{"login":"jordens","id":1338946,"avatar_url":"https://avatars.githubusercontent.com/u/1338946?v=3","gravatar_id":"","url":"https://api.github.com/users/jordens","html_url":"https://github.com/jordens","followers_url":"https://api.github.com/users/jordens/followers","following_url":"https://api.github.com/users/jordens/following{/other_user}","gists_url":"https://api.github.com/users/jordens/gists{/gist_id}","starred_url":"https://api.github.com/users/jordens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jordens/subscriptions","organizations_url":"https://api.github.com/users/jordens/orgs","repos_url":"https://api.github.com/users/jordens/repos","events_url":"https://api.github.com/users/jordens/events{/privacy}","received_events_url":"https://api.github.com/users/jordens/received_events","type":"User","site_admin":false},"created_at":"2015-06-21T00:24:07Z","updated_at":"2015-06-21T00:24:07Z","body":"Blocking as default is good.\r\n\r\nAs a note for the future, I can imagine a few situations where you want to start a move to a certain point and then abort or override it with a different target. With fire-and-forget I suspect you can not abort a blocking move. If those situations come up, I would propose adding either a state to the driver that determines blocking behavior or add the `async` keyword argument back back in."}}