{"action":"created","issue":{"url":"https://api.github.com/repos/arduino/ArduinoCore-samd/issues/88","repository_url":"https://api.github.com/repos/arduino/ArduinoCore-samd","labels_url":"https://api.github.com/repos/arduino/ArduinoCore-samd/issues/88/labels{/name}","comments_url":"https://api.github.com/repos/arduino/ArduinoCore-samd/issues/88/comments","events_url":"https://api.github.com/repos/arduino/ArduinoCore-samd/issues/88/events","html_url":"https://github.com/arduino/ArduinoCore-samd/pull/88","id":125542774,"number":88,"title":"Fix 10 second blocking delay","user":{"login":"bbx10","id":1388441,"avatar_url":"https://avatars.githubusercontent.com/u/1388441?v=3","gravatar_id":"","url":"https://api.github.com/users/bbx10","html_url":"https://github.com/bbx10","followers_url":"https://api.github.com/users/bbx10/followers","following_url":"https://api.github.com/users/bbx10/following{/other_user}","gists_url":"https://api.github.com/users/bbx10/gists{/gist_id}","starred_url":"https://api.github.com/users/bbx10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbx10/subscriptions","organizations_url":"https://api.github.com/users/bbx10/orgs","repos_url":"https://api.github.com/users/bbx10/repos","events_url":"https://api.github.com/users/bbx10/events{/privacy}","received_events_url":"https://api.github.com/users/bbx10/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-01-08T04:46:54Z","updated_at":"2016-02-18T18:55:09Z","closed_at":"2016-02-18T18:55:09Z","pull_request":{"url":"https://api.github.com/repos/arduino/ArduinoCore-samd/pulls/88","html_url":"https://github.com/arduino/ArduinoCore-samd/pull/88","diff_url":"https://github.com/arduino/ArduinoCore-samd/pull/88.diff","patch_url":"https://github.com/arduino/ArduinoCore-samd/pull/88.patch"},"body":"usb.Task() has a 10 second blocking delay for all devices that doe IN transfers. This makes it hard to use USB host with other devices that need regular polling. For example, if data is streaming in to Serial1 at 115200 bits/s, the incoming data will not be processed for up to 10 seconds.\r\n\r\nThis can be seen by adding timing output to the keyboard example. The following prints \"delta millis 10000\" when there is no keyboard input.\r\n\r\n```c\r\nvoid loop() {\r\n  uint32_t delta, startMillis = millis();\r\n\r\n  // Process USB tasks\r\n  usb.Task();\r\n\r\n  delta = millis() - startMillis;\r\n  if (delta > 10) {\r\n    Serial.print(\"delta millis \");\r\n    Serial.println(delta);\r\n  }\r\n}\r\n```"},"comment":{"url":"https://api.github.com/repos/arduino/ArduinoCore-samd/issues/comments/185858817","html_url":"https://github.com/arduino/ArduinoCore-samd/pull/88#issuecomment-185858817","issue_url":"https://api.github.com/repos/arduino/ArduinoCore-samd/issues/88","id":185858817,"user":{"login":"cmaglie","id":423515,"avatar_url":"https://avatars.githubusercontent.com/u/423515?v=3","gravatar_id":"","url":"https://api.github.com/users/cmaglie","html_url":"https://github.com/cmaglie","followers_url":"https://api.github.com/users/cmaglie/followers","following_url":"https://api.github.com/users/cmaglie/following{/other_user}","gists_url":"https://api.github.com/users/cmaglie/gists{/gist_id}","starred_url":"https://api.github.com/users/cmaglie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cmaglie/subscriptions","organizations_url":"https://api.github.com/users/cmaglie/orgs","repos_url":"https://api.github.com/users/cmaglie/repos","events_url":"https://api.github.com/users/cmaglie/events{/privacy}","received_events_url":"https://api.github.com/users/cmaglie/received_events","type":"User","site_admin":false},"created_at":"2016-02-18T18:55:09Z","updated_at":"2016-02-18T18:55:09Z","body":"Rebased and merged. Thank you!"}}