{"action":"created","comment":{"url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/comments/186814660","pull_request_review_id":118469070,"id":186814660,"diff_hunk":"@@ -9,16 +9,214 @@\n #include <wait_q.h>\n #include <posix/pthread.h>\n \n-int pthread_mutex_trylock(pthread_mutex_t *m)\n+/* Memory pool for pthread space */\n+K_MEM_POOL_DEFINE(posix_mutex_sem, sizeof(struct k_sem),\n+\t\t  sizeof(struct k_sem), 32, 4);\n+\n+/*\n+ *  Default mutex attrs.\n+ */\n+static const pthread_mutexattr_t def_attr = {\n+\t.type = PTHREAD_MUTEX_DEFAULT,\n+\t.protocol = PTHREAD_PRIO_NONE,\n+};\n+\n+static int mutex_recursive_take(pthread_mutex_t *m, int timeout)\n+{\n+\tif (m->lock_count == 0) {\n+\t\tm->owner = pthread_self();\n+\t}\n+\n+\tif (m->owner == pthread_self()) {\n+\t\tm->lock_count++;\n+\t\tif (m->lock_count > MUTEX_MAX_REC_LOCK) {\n+\t\t\treturn EAGAIN;\n+\t\t}\n+\t\treturn k_sem_take(m->sem, timeout);\n+\t}\n+\n+\treturn EPERM;\n+}\n+\n+static int acquire_mutex(pthread_mutex_t *m, int timeout)\n {\n-\tint key = irq_lock(), ret = EBUSY;\n+\tpthread_t this_thread;\n+\n+\tthis_thread = pthread_self();\n+\tint rc = 0;\n+\n+\tif (m->owner == this_thread) {\n+\t\tif (m->type == PTHREAD_MUTEX_ERRORCHECK) {\n+\t\t\treturn EDEADLK;\n+\t\t}\n+\t}\n+\n+\tif (m->type == PTHREAD_MUTEX_RECURSIVE) {\n+\t\trc = mutex_recursive_take(m, timeout);\n+\t} else {\n+\t\tm->lock_count = 1;\n+\t\trc = k_sem_take(m->sem, timeout);\n+\t}\n \n-\tif (m->sem->count) {\n-\t\tm->sem->count = 0;\n-\t\tret = 0;\n+\tif (rc == 0) {\n+\t\tm->owner = this_thread;\n \t}\n \n+\treturn rc;\n+}\n+\n+/**\n+ * @brief Lock POSIX mutex with non-blocking call.\n+ *\n+ * See IEEE 1003.1\n+ */\n+int pthread_mutex_trylock(pthread_mutex_t *m)\n+{\n+\tint key = irq_lock(), ret;\n+\n+\tret = acquire_mutex(m, K_NO_WAIT);\n+\n \tirq_unlock(key);\n \n \treturn ret;\n }\n+\n+/**\n+ * @brief Intialize POSIX mutex.\n+ *\n+ * See IEEE 1003.1\n+ */\n+int pthread_mutex_init(pthread_mutex_t *m,\n+\t\t\t\t     const pthread_mutexattr_t *attr)\n+{\n+\tconst pthread_mutexattr_t *mattr;\n+\n+\tif (k_mem_pool_alloc(&posix_mutex_sem, &m->block,\n+\t\t\tsizeof(struct k_sem), 100) == 0) {\n+\t\tmemset(m->block.data, 0, sizeof(struct k_sem));\n+\t}\n+\n+\tm->sem = m->block.data;\n+\n+\tm->owner = NULL;\n+\tm->lock_count = 0;\n+\n+\tmattr = (attr == NULL) ? &def_attr : attr;\n+\n+\tm->type = mattr->type;\n+\tm->protocol = mattr->protocol;\n+\n+\tif ((m->type == PTHREAD_MUTEX_NORMAL) ||\n+\t\t(m->type == PTHREAD_MUTEX_ERRORCHECK)) {\n+\t\tk_sem_init(m->sem, 1, 1);\n+\t} else {\n+\t\tk_sem_init(m->sem, MUTEX_MAX_REC_LOCK, MUTEX_MAX_REC_LOCK);\n+\t}\n+\n+\treturn 0;\n+}\n+\n+/**\n+ * @brief Lock POSIX mutex with blocking call.\n+ *\n+ * See IEEE 1003.1\n+ */\n+int pthread_mutex_lock(pthread_mutex_t *m)\n+{\n+\treturn acquire_mutex(m, K_FOREVER);\n+}\n+\n+/**\n+ * @brief Unlock POSIX mutex.\n+ *\n+ * See IEEE 1003.1\n+ */\n+int pthread_mutex_unlock(pthread_mutex_t *m)\n+{\n+\tif (m->owner != pthread_self()) {\n+\t\treturn EPERM;\n+\t}\n+\n+\tif (m->lock_count == 0) {\n+\t\treturn -1;\n+\t}\n+\n+\tk_sem_give(m->sem);\n+\tm->lock_count--;","path":"lib/posix/pthread_mutex.c","position":149,"original_position":149,"commit_id":"b2338392d90075f244c496ef2ed747e89dad1f41","original_commit_id":"b2338392d90075f244c496ef2ed747e89dad1f41","user":{"login":"lpereira","id":15001,"avatar_url":"https://avatars1.githubusercontent.com/u/15001?v=4","gravatar_id":"","url":"https://api.github.com/users/lpereira","html_url":"https://github.com/lpereira","followers_url":"https://api.github.com/users/lpereira/followers","following_url":"https://api.github.com/users/lpereira/following{/other_user}","gists_url":"https://api.github.com/users/lpereira/gists{/gist_id}","starred_url":"https://api.github.com/users/lpereira/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lpereira/subscriptions","organizations_url":"https://api.github.com/users/lpereira/orgs","repos_url":"https://api.github.com/users/lpereira/repos","events_url":"https://api.github.com/users/lpereira/events{/privacy}","received_events_url":"https://api.github.com/users/lpereira/received_events","type":"User","site_admin":false},"body":"This is racy. The decrement and comparison should happen while the semaphore is taken.","created_at":"2018-05-08T17:56:45Z","updated_at":"2018-05-08T17:56:45Z","html_url":"https://github.com/zephyrproject-rtos/zephyr/pull/7038#discussion_r186814660","pull_request_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/7038","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/comments/186814660"},"html":{"href":"https://github.com/zephyrproject-rtos/zephyr/pull/7038#discussion_r186814660"},"pull_request":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/7038"}}},"pull_request":{"url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/7038","id":181172199,"html_url":"https://github.com/zephyrproject-rtos/zephyr/pull/7038","diff_url":"https://github.com/zephyrproject-rtos/zephyr/pull/7038.diff","patch_url":"https://github.com/zephyrproject-rtos/zephyr/pull/7038.patch","issue_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/7038","number":7038,"state":"open","locked":false,"title":"Implement/Update POSIX mutex APIs","user":{"login":"punitvara","id":9531144,"avatar_url":"https://avatars3.githubusercontent.com/u/9531144?v=4","gravatar_id":"","url":"https://api.github.com/users/punitvara","html_url":"https://github.com/punitvara","followers_url":"https://api.github.com/users/punitvara/followers","following_url":"https://api.github.com/users/punitvara/following{/other_user}","gists_url":"https://api.github.com/users/punitvara/gists{/gist_id}","starred_url":"https://api.github.com/users/punitvara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/punitvara/subscriptions","organizations_url":"https://api.github.com/users/punitvara/orgs","repos_url":"https://api.github.com/users/punitvara/repos","events_url":"https://api.github.com/users/punitvara/events{/privacy}","received_events_url":"https://api.github.com/users/punitvara/received_events","type":"User","site_admin":false},"body":"Add","created_at":"2018-04-12T11:30:01Z","updated_at":"2018-05-08T17:56:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2c21b70af660f2f1c1ffc861eafd3829168f8bbf","assignee":null,"assignees":[],"requested_reviewers":[{"login":"nashif","id":180017,"avatar_url":"https://avatars0.githubusercontent.com/u/180017?v=4","gravatar_id":"","url":"https://api.github.com/users/nashif","html_url":"https://github.com/nashif","followers_url":"https://api.github.com/users/nashif/followers","following_url":"https://api.github.com/users/nashif/following{/other_user}","gists_url":"https://api.github.com/users/nashif/gists{/gist_id}","starred_url":"https://api.github.com/users/nashif/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nashif/subscriptions","organizations_url":"https://api.github.com/users/nashif/orgs","repos_url":"https://api.github.com/users/nashif/repos","events_url":"https://api.github.com/users/nashif/events{/privacy}","received_events_url":"https://api.github.com/users/nashif/received_events","type":"User","site_admin":false},{"login":"andyross","id":300115,"avatar_url":"https://avatars1.githubusercontent.com/u/300115?v=4","gravatar_id":"","url":"https://api.github.com/users/andyross","html_url":"https://github.com/andyross","followers_url":"https://api.github.com/users/andyross/followers","following_url":"https://api.github.com/users/andyross/following{/other_user}","gists_url":"https://api.github.com/users/andyross/gists{/gist_id}","starred_url":"https://api.github.com/users/andyross/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andyross/subscriptions","organizations_url":"https://api.github.com/users/andyross/orgs","repos_url":"https://api.github.com/users/andyross/repos","events_url":"https://api.github.com/users/andyross/events{/privacy}","received_events_url":"https://api.github.com/users/andyross/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/7038/commits","review_comments_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/7038/comments","review_comment_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/7038/comments","statuses_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/statuses/b2338392d90075f244c496ef2ed747e89dad1f41","head":{"label":"punitvara:continue_posix_mutex","ref":"continue_posix_mutex","sha":"b2338392d90075f244c496ef2ed747e89dad1f41","user":{"login":"punitvara","id":9531144,"avatar_url":"https://avatars3.githubusercontent.com/u/9531144?v=4","gravatar_id":"","url":"https://api.github.com/users/punitvara","html_url":"https://github.com/punitvara","followers_url":"https://api.github.com/users/punitvara/followers","following_url":"https://api.github.com/users/punitvara/following{/other_user}","gists_url":"https://api.github.com/users/punitvara/gists{/gist_id}","starred_url":"https://api.github.com/users/punitvara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/punitvara/subscriptions","organizations_url":"https://api.github.com/users/punitvara/orgs","repos_url":"https://api.github.com/users/punitvara/repos","events_url":"https://api.github.com/users/punitvara/events{/privacy}","received_events_url":"https://api.github.com/users/punitvara/received_events","type":"User","site_admin":false},"repo":{"id":77270338,"name":"zephyr","full_name":"punitvara/zephyr","owner":{"login":"punitvara","id":9531144,"avatar_url":"https://avatars3.githubusercontent.com/u/9531144?v=4","gravatar_id":"","url":"https://api.github.com/users/punitvara","html_url":"https://github.com/punitvara","followers_url":"https://api.github.com/users/punitvara/followers","following_url":"https://api.github.com/users/punitvara/following{/other_user}","gists_url":"https://api.github.com/users/punitvara/gists{/gist_id}","starred_url":"https://api.github.com/users/punitvara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/punitvara/subscriptions","organizations_url":"https://api.github.com/users/punitvara/orgs","repos_url":"https://api.github.com/users/punitvara/repos","events_url":"https://api.github.com/users/punitvara/events{/privacy}","received_events_url":"https://api.github.com/users/punitvara/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/punitvara/zephyr","description":"Mirror of the zephyr repo on https://gerrit.zephyrproject.org","fork":true,"url":"https://api.github.com/repos/punitvara/zephyr","forks_url":"https://api.github.com/repos/punitvara/zephyr/forks","keys_url":"https://api.github.com/repos/punitvara/zephyr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/punitvara/zephyr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/punitvara/zephyr/teams","hooks_url":"https://api.github.com/repos/punitvara/zephyr/hooks","issue_events_url":"https://api.github.com/repos/punitvara/zephyr/issues/events{/number}","events_url":"https://api.github.com/repos/punitvara/zephyr/events","assignees_url":"https://api.github.com/repos/punitvara/zephyr/assignees{/user}","branches_url":"https://api.github.com/repos/punitvara/zephyr/branches{/branch}","tags_url":"https://api.github.com/repos/punitvara/zephyr/tags","blobs_url":"https://api.github.com/repos/punitvara/zephyr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/punitvara/zephyr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/punitvara/zephyr/git/refs{/sha}","trees_url":"https://api.github.com/repos/punitvara/zephyr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/punitvara/zephyr/statuses/{sha}","languages_url":"https://api.github.com/repos/punitvara/zephyr/languages","stargazers_url":"https://api.github.com/repos/punitvara/zephyr/stargazers","contributors_url":"https://api.github.com/repos/punitvara/zephyr/contributors","subscribers_url":"https://api.github.com/repos/punitvara/zephyr/subscribers","subscription_url":"https://api.github.com/repos/punitvara/zephyr/subscription","commits_url":"https://api.github.com/repos/punitvara/zephyr/commits{/sha}","git_commits_url":"https://api.github.com/repos/punitvara/zephyr/git/commits{/sha}","comments_url":"https://api.github.com/repos/punitvara/zephyr/comments{/number}","issue_comment_url":"https://api.github.com/repos/punitvara/zephyr/issues/comments{/number}","contents_url":"https://api.github.com/repos/punitvara/zephyr/contents/{+path}","compare_url":"https://api.github.com/repos/punitvara/zephyr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/punitvara/zephyr/merges","archive_url":"https://api.github.com/repos/punitvara/zephyr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/punitvara/zephyr/downloads","issues_url":"https://api.github.com/repos/punitvara/zephyr/issues{/number}","pulls_url":"https://api.github.com/repos/punitvara/zephyr/pulls{/number}","milestones_url":"https://api.github.com/repos/punitvara/zephyr/milestones{/number}","notifications_url":"https://api.github.com/repos/punitvara/zephyr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/punitvara/zephyr/labels{/name}","releases_url":"https://api.github.com/repos/punitvara/zephyr/releases{/id}","deployments_url":"https://api.github.com/repos/punitvara/zephyr/deployments","created_at":"2016-12-24T06:49:54Z","updated_at":"2018-04-03T04:41:51Z","pushed_at":"2018-05-08T06:07:17Z","git_url":"git://github.com/punitvara/zephyr.git","ssh_url":"git@github.com:punitvara/zephyr.git","clone_url":"https://github.com/punitvara/zephyr.git","svn_url":"https://github.com/punitvara/zephyr","homepage":null,"size":108283,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"zephyrproject-rtos:master","ref":"master","sha":"5dc2ab4f47c4ca536c36f9974ed6f90d30ba4306","user":{"login":"zephyrproject-rtos","id":19595895,"avatar_url":"https://avatars2.githubusercontent.com/u/19595895?v=4","gravatar_id":"","url":"https://api.github.com/users/zephyrproject-rtos","html_url":"https://github.com/zephyrproject-rtos","followers_url":"https://api.github.com/users/zephyrproject-rtos/followers","following_url":"https://api.github.com/users/zephyrproject-rtos/following{/other_user}","gists_url":"https://api.github.com/users/zephyrproject-rtos/gists{/gist_id}","starred_url":"https://api.github.com/users/zephyrproject-rtos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zephyrproject-rtos/subscriptions","organizations_url":"https://api.github.com/users/zephyrproject-rtos/orgs","repos_url":"https://api.github.com/users/zephyrproject-rtos/repos","events_url":"https://api.github.com/users/zephyrproject-rtos/events{/privacy}","received_events_url":"https://api.github.com/users/zephyrproject-rtos/received_events","type":"Organization","site_admin":false},"repo":{"id":59771425,"name":"zephyr","full_name":"zephyrproject-rtos/zephyr","owner":{"login":"zephyrproject-rtos","id":19595895,"avatar_url":"https://avatars2.githubusercontent.com/u/19595895?v=4","gravatar_id":"","url":"https://api.github.com/users/zephyrproject-rtos","html_url":"https://github.com/zephyrproject-rtos","followers_url":"https://api.github.com/users/zephyrproject-rtos/followers","following_url":"https://api.github.com/users/zephyrproject-rtos/following{/other_user}","gists_url":"https://api.github.com/users/zephyrproject-rtos/gists{/gist_id}","starred_url":"https://api.github.com/users/zephyrproject-rtos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zephyrproject-rtos/subscriptions","organizations_url":"https://api.github.com/users/zephyrproject-rtos/orgs","repos_url":"https://api.github.com/users/zephyrproject-rtos/repos","events_url":"https://api.github.com/users/zephyrproject-rtos/events{/privacy}","received_events_url":"https://api.github.com/users/zephyrproject-rtos/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zephyrproject-rtos/zephyr","description":"Primary GIT Repository for the Zephyr Project","fork":false,"url":"https://api.github.com/repos/zephyrproject-rtos/zephyr","forks_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/forks","keys_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/teams","hooks_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/hooks","issue_events_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/events{/number}","events_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/events","assignees_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/assignees{/user}","branches_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/branches{/branch}","tags_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/tags","blobs_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/refs{/sha}","trees_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/statuses/{sha}","languages_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/languages","stargazers_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/stargazers","contributors_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/contributors","subscribers_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/subscribers","subscription_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/subscription","commits_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/commits{/sha}","git_commits_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/git/commits{/sha}","comments_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/comments{/number}","issue_comment_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/comments{/number}","contents_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/contents/{+path}","compare_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/merges","archive_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/downloads","issues_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues{/number}","pulls_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls{/number}","milestones_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/milestones{/number}","notifications_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/labels{/name}","releases_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/releases{/id}","deployments_url":"https://api.github.com/repos/zephyrproject-rtos/zephyr/deployments","created_at":"2016-05-26T17:54:19Z","updated_at":"2018-05-08T16:36:31Z","pushed_at":"2018-05-08T17:53:00Z","git_url":"git://github.com/zephyrproject-rtos/zephyr.git","ssh_url":"git@github.com:zephyrproject-rtos/zephyr.git","clone_url":"https://github.com/zephyrproject-rtos/zephyr.git","svn_url":"https://github.com/zephyrproject-rtos/zephyr","homepage":"https://zephyrproject.org/doc","size":108896,"stargazers_count":819,"watchers_count":819,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":587,"mirror_url":null,"archived":false,"open_issues_count":932,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":587,"open_issues":932,"watchers":819,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/7038"},"html":{"href":"https://github.com/zephyrproject-rtos/zephyr/pull/7038"},"issue":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/7038"},"comments":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/issues/7038/comments"},"review_comments":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/7038/comments"},"review_comment":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/pulls/7038/commits"},"statuses":{"href":"https://api.github.com/repos/zephyrproject-rtos/zephyr/statuses/b2338392d90075f244c496ef2ed747e89dad1f41"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"lpereira"}}