{"action":"created","comment":{"url":"https://api.github.com/repos/floodlight/indigo/pulls/comments/25731468","id":25731468,"diff_hunk":"@@ -286,3 +298,38 @@ compare_message(const void *_a, const void *_b)\n \n     return comparator(obj_a, obj_b);\n }\n+\n+static ind_soc_task_status_t\n+bundle_task(void *cookie)\n+{\n+    struct bundle_task_state *state = cookie;\n+\n+    connection_t *cxn = ind_cxn_id_to_connection(state->cxn_id);\n+\n+    while (state->offset < state->count) {\n+        of_object_storage_t obj_storage;\n+        of_object_t *obj = parse_message(state->msgs[state->offset], &obj_storage);\n+\n+        if (cxn) {\n+            ind_cxn_process_message(cxn, obj);\n+        } else {\n+            /* Connection went away. Drop remaining messages. */\n+        }","path":"modules/OFConnectionManager/module/src/bundle.c","position":null,"original_position":76,"commit_id":"6c953f106a29c6f113abba12f1e0eb14c27e8b08","original_commit_id":"6706b8450dda15b4180103f0f64174f97b5f14c0","user":{"login":"rlane","id":28525,"avatar_url":"https://avatars.githubusercontent.com/u/28525?v=3","gravatar_id":"","url":"https://api.github.com/users/rlane","html_url":"https://github.com/rlane","followers_url":"https://api.github.com/users/rlane/followers","following_url":"https://api.github.com/users/rlane/following{/other_user}","gists_url":"https://api.github.com/users/rlane/gists{/gist_id}","starred_url":"https://api.github.com/users/rlane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlane/subscriptions","organizations_url":"https://api.github.com/users/rlane/orgs","repos_url":"https://api.github.com/users/rlane/repos","events_url":"https://api.github.com/users/rlane/events{/privacy}","received_events_url":"https://api.github.com/users/rlane/received_events","type":"User","site_admin":false},"body":"Good idea, I pushed another commit that does this optimization.","created_at":"2015-03-03T22:01:15Z","updated_at":"2015-03-03T22:01:15Z","html_url":"https://github.com/floodlight/indigo/pull/192#discussion_r25731468","pull_request_url":"https://api.github.com/repos/floodlight/indigo/pulls/192","_links":{"self":{"href":"https://api.github.com/repos/floodlight/indigo/pulls/comments/25731468"},"html":{"href":"https://github.com/floodlight/indigo/pull/192#discussion_r25731468"},"pull_request":{"href":"https://api.github.com/repos/floodlight/indigo/pulls/192"}}},"pull_request":{"url":"https://api.github.com/repos/floodlight/indigo/pulls/192","id":30338782,"html_url":"https://github.com/floodlight/indigo/pull/192","diff_url":"https://github.com/floodlight/indigo/pull/192.diff","patch_url":"https://github.com/floodlight/indigo/pull/192.patch","issue_url":"https://api.github.com/repos/floodlight/indigo/issues/192","number":192,"state":"open","locked":false,"title":"OFConnectionManager: commit bundle in a long running task","user":{"login":"rlane","id":28525,"avatar_url":"https://avatars.githubusercontent.com/u/28525?v=3","gravatar_id":"","url":"https://api.github.com/users/rlane","html_url":"https://github.com/rlane","followers_url":"https://api.github.com/users/rlane/followers","following_url":"https://api.github.com/users/rlane/following{/other_user}","gists_url":"https://api.github.com/users/rlane/gists{/gist_id}","starred_url":"https://api.github.com/users/rlane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlane/subscriptions","organizations_url":"https://api.github.com/users/rlane/orgs","repos_url":"https://api.github.com/users/rlane/repos","events_url":"https://api.github.com/users/rlane/events{/privacy}","received_events_url":"https://api.github.com/users/rlane/received_events","type":"User","site_admin":false},"body":"Reviewer: @kenchiang\n\nTo avoid blocking the rest of the event loop, these changes split the bundle \ncommit into 10ms timeslices.","created_at":"2015-03-03T01:27:43Z","updated_at":"2015-03-03T22:01:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"680a1d6048f42eadb2ed270984ff0496cb9e3d91","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/floodlight/indigo/pulls/192/commits","review_comments_url":"https://api.github.com/repos/floodlight/indigo/pulls/192/comments","review_comment_url":"https://api.github.com/repos/floodlight/indigo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/floodlight/indigo/issues/192/comments","statuses_url":"https://api.github.com/repos/floodlight/indigo/statuses/6c953f106a29c6f113abba12f1e0eb14c27e8b08","head":{"label":"rlane:bundle2","ref":"bundle2","sha":"6c953f106a29c6f113abba12f1e0eb14c27e8b08","user":{"login":"rlane","id":28525,"avatar_url":"https://avatars.githubusercontent.com/u/28525?v=3","gravatar_id":"","url":"https://api.github.com/users/rlane","html_url":"https://github.com/rlane","followers_url":"https://api.github.com/users/rlane/followers","following_url":"https://api.github.com/users/rlane/following{/other_user}","gists_url":"https://api.github.com/users/rlane/gists{/gist_id}","starred_url":"https://api.github.com/users/rlane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlane/subscriptions","organizations_url":"https://api.github.com/users/rlane/orgs","repos_url":"https://api.github.com/users/rlane/repos","events_url":"https://api.github.com/users/rlane/events{/privacy}","received_events_url":"https://api.github.com/users/rlane/received_events","type":"User","site_admin":false},"repo":{"id":10394579,"name":"indigo","full_name":"rlane/indigo","owner":{"login":"rlane","id":28525,"avatar_url":"https://avatars.githubusercontent.com/u/28525?v=3","gravatar_id":"","url":"https://api.github.com/users/rlane","html_url":"https://github.com/rlane","followers_url":"https://api.github.com/users/rlane/followers","following_url":"https://api.github.com/users/rlane/following{/other_user}","gists_url":"https://api.github.com/users/rlane/gists{/gist_id}","starred_url":"https://api.github.com/users/rlane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlane/subscriptions","organizations_url":"https://api.github.com/users/rlane/orgs","repos_url":"https://api.github.com/users/rlane/repos","events_url":"https://api.github.com/users/rlane/events{/privacy}","received_events_url":"https://api.github.com/users/rlane/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rlane/indigo","description":"Core OpenFlow agent and infrastructure modules","fork":true,"url":"https://api.github.com/repos/rlane/indigo","forks_url":"https://api.github.com/repos/rlane/indigo/forks","keys_url":"https://api.github.com/repos/rlane/indigo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rlane/indigo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rlane/indigo/teams","hooks_url":"https://api.github.com/repos/rlane/indigo/hooks","issue_events_url":"https://api.github.com/repos/rlane/indigo/issues/events{/number}","events_url":"https://api.github.com/repos/rlane/indigo/events","assignees_url":"https://api.github.com/repos/rlane/indigo/assignees{/user}","branches_url":"https://api.github.com/repos/rlane/indigo/branches{/branch}","tags_url":"https://api.github.com/repos/rlane/indigo/tags","blobs_url":"https://api.github.com/repos/rlane/indigo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rlane/indigo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rlane/indigo/git/refs{/sha}","trees_url":"https://api.github.com/repos/rlane/indigo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rlane/indigo/statuses/{sha}","languages_url":"https://api.github.com/repos/rlane/indigo/languages","stargazers_url":"https://api.github.com/repos/rlane/indigo/stargazers","contributors_url":"https://api.github.com/repos/rlane/indigo/contributors","subscribers_url":"https://api.github.com/repos/rlane/indigo/subscribers","subscription_url":"https://api.github.com/repos/rlane/indigo/subscription","commits_url":"https://api.github.com/repos/rlane/indigo/commits{/sha}","git_commits_url":"https://api.github.com/repos/rlane/indigo/git/commits{/sha}","comments_url":"https://api.github.com/repos/rlane/indigo/comments{/number}","issue_comment_url":"https://api.github.com/repos/rlane/indigo/issues/comments{/number}","contents_url":"https://api.github.com/repos/rlane/indigo/contents/{+path}","compare_url":"https://api.github.com/repos/rlane/indigo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rlane/indigo/merges","archive_url":"https://api.github.com/repos/rlane/indigo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rlane/indigo/downloads","issues_url":"https://api.github.com/repos/rlane/indigo/issues{/number}","pulls_url":"https://api.github.com/repos/rlane/indigo/pulls{/number}","milestones_url":"https://api.github.com/repos/rlane/indigo/milestones{/number}","notifications_url":"https://api.github.com/repos/rlane/indigo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rlane/indigo/labels{/name}","releases_url":"https://api.github.com/repos/rlane/indigo/releases{/id}","created_at":"2013-05-31T00:01:33Z","updated_at":"2014-06-24T17:14:35Z","pushed_at":"2015-03-03T22:00:31Z","git_url":"git://github.com/rlane/indigo.git","ssh_url":"git@github.com:rlane/indigo.git","clone_url":"https://github.com/rlane/indigo.git","svn_url":"https://github.com/rlane/indigo","homepage":null,"size":6136,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"floodlight:master","ref":"master","sha":"e457b0d56902861a6b7e14a6b146fc60ee1a3758","user":{"login":"floodlight","id":1198172,"avatar_url":"https://avatars.githubusercontent.com/u/1198172?v=3","gravatar_id":"","url":"https://api.github.com/users/floodlight","html_url":"https://github.com/floodlight","followers_url":"https://api.github.com/users/floodlight/followers","following_url":"https://api.github.com/users/floodlight/following{/other_user}","gists_url":"https://api.github.com/users/floodlight/gists{/gist_id}","starred_url":"https://api.github.com/users/floodlight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/floodlight/subscriptions","organizations_url":"https://api.github.com/users/floodlight/orgs","repos_url":"https://api.github.com/users/floodlight/repos","events_url":"https://api.github.com/users/floodlight/events{/privacy}","received_events_url":"https://api.github.com/users/floodlight/received_events","type":"Organization","site_admin":false},"repo":{"id":9015507,"name":"indigo","full_name":"floodlight/indigo","owner":{"login":"floodlight","id":1198172,"avatar_url":"https://avatars.githubusercontent.com/u/1198172?v=3","gravatar_id":"","url":"https://api.github.com/users/floodlight","html_url":"https://github.com/floodlight","followers_url":"https://api.github.com/users/floodlight/followers","following_url":"https://api.github.com/users/floodlight/following{/other_user}","gists_url":"https://api.github.com/users/floodlight/gists{/gist_id}","starred_url":"https://api.github.com/users/floodlight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/floodlight/subscriptions","organizations_url":"https://api.github.com/users/floodlight/orgs","repos_url":"https://api.github.com/users/floodlight/repos","events_url":"https://api.github.com/users/floodlight/events{/privacy}","received_events_url":"https://api.github.com/users/floodlight/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/floodlight/indigo","description":"Core OpenFlow agent and infrastructure modules","fork":false,"url":"https://api.github.com/repos/floodlight/indigo","forks_url":"https://api.github.com/repos/floodlight/indigo/forks","keys_url":"https://api.github.com/repos/floodlight/indigo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/floodlight/indigo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/floodlight/indigo/teams","hooks_url":"https://api.github.com/repos/floodlight/indigo/hooks","issue_events_url":"https://api.github.com/repos/floodlight/indigo/issues/events{/number}","events_url":"https://api.github.com/repos/floodlight/indigo/events","assignees_url":"https://api.github.com/repos/floodlight/indigo/assignees{/user}","branches_url":"https://api.github.com/repos/floodlight/indigo/branches{/branch}","tags_url":"https://api.github.com/repos/floodlight/indigo/tags","blobs_url":"https://api.github.com/repos/floodlight/indigo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/floodlight/indigo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/floodlight/indigo/git/refs{/sha}","trees_url":"https://api.github.com/repos/floodlight/indigo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/floodlight/indigo/statuses/{sha}","languages_url":"https://api.github.com/repos/floodlight/indigo/languages","stargazers_url":"https://api.github.com/repos/floodlight/indigo/stargazers","contributors_url":"https://api.github.com/repos/floodlight/indigo/contributors","subscribers_url":"https://api.github.com/repos/floodlight/indigo/subscribers","subscription_url":"https://api.github.com/repos/floodlight/indigo/subscription","commits_url":"https://api.github.com/repos/floodlight/indigo/commits{/sha}","git_commits_url":"https://api.github.com/repos/floodlight/indigo/git/commits{/sha}","comments_url":"https://api.github.com/repos/floodlight/indigo/comments{/number}","issue_comment_url":"https://api.github.com/repos/floodlight/indigo/issues/comments{/number}","contents_url":"https://api.github.com/repos/floodlight/indigo/contents/{+path}","compare_url":"https://api.github.com/repos/floodlight/indigo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/floodlight/indigo/merges","archive_url":"https://api.github.com/repos/floodlight/indigo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/floodlight/indigo/downloads","issues_url":"https://api.github.com/repos/floodlight/indigo/issues{/number}","pulls_url":"https://api.github.com/repos/floodlight/indigo/pulls{/number}","milestones_url":"https://api.github.com/repos/floodlight/indigo/milestones{/number}","notifications_url":"https://api.github.com/repos/floodlight/indigo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/floodlight/indigo/labels{/name}","releases_url":"https://api.github.com/repos/floodlight/indigo/releases{/id}","created_at":"2013-03-25T20:42:05Z","updated_at":"2015-02-28T08:28:32Z","pushed_at":"2015-02-28T08:28:32Z","git_url":"git://github.com/floodlight/indigo.git","ssh_url":"git@github.com:floodlight/indigo.git","clone_url":"https://github.com/floodlight/indigo.git","svn_url":"https://github.com/floodlight/indigo","homepage":null,"size":6589,"stargazers_count":20,"watchers_count":20,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":35,"mirror_url":null,"open_issues_count":3,"forks":35,"open_issues":3,"watchers":20,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/floodlight/indigo/pulls/192"},"html":{"href":"https://github.com/floodlight/indigo/pull/192"},"issue":{"href":"https://api.github.com/repos/floodlight/indigo/issues/192"},"comments":{"href":"https://api.github.com/repos/floodlight/indigo/issues/192/comments"},"review_comments":{"href":"https://api.github.com/repos/floodlight/indigo/pulls/192/comments"},"review_comment":{"href":"https://api.github.com/repos/floodlight/indigo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/floodlight/indigo/pulls/192/commits"},"statuses":{"href":"https://api.github.com/repos/floodlight/indigo/statuses/6c953f106a29c6f113abba12f1e0eb14c27e8b08"}}}}