{"action":"created","comment":{"url":"https://api.github.com/repos/awslabs/aws-c-common/pulls/comments/216741370","pull_request_review_id":154295530,"id":216741370,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNjc0MTM3MA==","diff_hunk":"@@ -0,0 +1,245 @@\n+/*\n+ * Copyright 2010-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\").\n+ * You may not use this file except in compliance with the License.\n+ * A copy of the License is located at\n+ *\n+ *  http://aws.amazon.com/apache2.0\n+ *\n+ * or in the \"license\" file accompanying this file. This file is distributed\n+ * on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either\n+ * express or implied. See the License for the specific language governing\n+ * permissions and limitations under the License.\n+ */\n+\n+/* These are implicitly included, but helps with editor highlighting */\n+#include <aws/common/atomics.h>\n+#include <aws/common/common.h>\n+\n+#include <stdint.h>\n+#include <stdlib.h>\n+\n+#ifdef __clang__\n+#    pragma clang diagnostic push\n+#    pragma clang diagnostic ignored \"-Wc11-extensions\"\n+#endif\n+\n+/**\n+ * GCC guarantees support for 64-bit ints in atomics. However, performance will be worse\n+ * on x86-32, as atomic add/etc have to be implemented using compare-exchange.\n+ */\n+typedef int64_t aws_atomic_int_impl_t;\n+\n+#define AWS_ATOMIC_INT_IMPL_MAX INT64_MAX\n+#define AWS_ATOMIC_INT_IMPL_MIN INT64_MIN\n+\n+struct aws_atomic_var {\n+    union {\n+        aws_atomic_int_impl_t intval;\n+        void *ptrval;\n+    };\n+};\n+\n+static inline int aws_atomic_priv_xlate_order(enum aws_memory_order order) {\n+    switch (order) {\n+        case aws_memory_order_relaxed:\n+            return __ATOMIC_RELAXED;\n+        case aws_memory_order_acquire:\n+            return __ATOMIC_ACQUIRE;\n+        case aws_memory_order_release:\n+            return __ATOMIC_RELEASE;\n+        case aws_memory_order_acq_rel:\n+            return __ATOMIC_ACQ_REL;\n+        case aws_memory_order_seq_cst:\n+            return __ATOMIC_SEQ_CST;\n+        default: /* Unknown memory order */\n+            abort();\n+    }\n+}\n+\n+/**\n+ * Initializes an atomic variable with an integer value. This operation should be done before any\n+ * other operations on this atomic variable, and must be done before attempting any parallel operations.\n+ */\n+void aws_atomic_init_int(volatile struct aws_atomic_var *var, aws_atomic_int_impl_t n) {\n+    var->intval = n;\n+}\n+\n+/**\n+ * Initializes an atomic variable with a pointer value. This operation should be done before any\n+ * other operations on this atomic variable, and must be done before attempting any parallel operations.\n+ */\n+void aws_atomic_init_ptr(volatile struct aws_atomic_var *var, void *p) {\n+    var->ptrval = p;\n+}\n+\n+/**\n+ * Reads an atomic var as an integer, using the specified ordering, and returns the result.\n+ */\n+AWS_STATIC_IMPL\n+aws_atomic_int_impl_t aws_atomic_load_int(\n+    volatile const struct aws_atomic_var *var,\n+    enum aws_memory_order memory_order) {\n+    return __atomic_load_n(&var->intval, aws_atomic_priv_xlate_order(memory_order));\n+}\n+\n+/**\n+ * Reads an atomic var as an pointer, using the specified ordering, and returns the result.\n+ */\n+AWS_STATIC_IMPL\n+void *aws_atomic_load_ptr(volatile const struct aws_atomic_var *var, enum aws_memory_order memory_order) {\n+    return __atomic_load_n(&var->ptrval, aws_atomic_priv_xlate_order(memory_order));\n+}\n+\n+/**\n+ * Stores an integer into an atomic var, using the specified ordering.\n+ */\n+AWS_STATIC_IMPL\n+void aws_atomic_store_int(\n+    volatile struct aws_atomic_var *var,\n+    aws_atomic_int_impl_t n,\n+    enum aws_memory_order memory_order) {\n+    __atomic_store_n(&var->intval, n, aws_atomic_priv_xlate_order(memory_order));\n+}\n+\n+/**\n+ * Stores an pointer into an atomic var, using the specified ordering.\n+ */\n+AWS_STATIC_IMPL\n+void aws_atomic_store_ptr(volatile struct aws_atomic_var *var, void *p, enum aws_memory_order memory_order) {\n+    __atomic_store_n(&var->ptrval, p, aws_atomic_priv_xlate_order(memory_order));\n+}\n+\n+/**\n+ * Exchanges an integer with the value in an atomic_var, using the specified ordering.\n+ * Returns the value that was previously in the atomic_var.\n+ */\n+AWS_STATIC_IMPL\n+aws_atomic_int_impl_t aws_atomic_swap_int(\n+    volatile struct aws_atomic_var *var,\n+    aws_atomic_int_impl_t n,\n+    enum aws_memory_order memory_order) {\n+    return __atomic_exchange_n(&var->intval, n, aws_atomic_priv_xlate_order(memory_order));\n+}\n+\n+/**\n+ * Exchanges a pointer with the value in an atomic_var, using the specified ordering.\n+ * Returns the value that was previously in the atomic_var.\n+ */\n+AWS_STATIC_IMPL\n+void *aws_atomic_swap_ptr(volatile struct aws_atomic_var *var, void *p, enum aws_memory_order memory_order) {\n+    return __atomic_exchange_n(&var->ptrval, p, aws_atomic_priv_xlate_order(memory_order));\n+}\n+\n+/**\n+ * Atomically compares *var to *expected; if they are equal, atomically sets *var = desired. Otherwise, *expected is set\n+ * to the value in *var. On success, the memory ordering used was order_success; otherwise, it was order_failure.\n+ * order_failure must be no stronger than order_success, and must not be release or acq_rel.\n+ */\n+AWS_STATIC_IMPL\n+bool aws_atomic_compare_exchange_int(\n+    volatile struct aws_atomic_var *var,\n+    aws_atomic_int_impl_t *expected,\n+    aws_atomic_int_impl_t desired,\n+    enum aws_memory_order order_success,\n+    enum aws_memory_order order_failure) {\n+    return __atomic_compare_exchange_n(\n+        &var->intval,\n+        expected,\n+        desired,\n+        false,\n+        aws_atomic_priv_xlate_order(order_success),\n+        aws_atomic_priv_xlate_order(order_failure));\n+}\n+\n+/**\n+ * Atomically compares *var to *expected; if they are equal, atomically sets *var = desired. Otherwise, *expected is set\n+ * to the value in *var. On success, the memory ordering used was order_success; otherwise, it was order_failure.\n+ * order_failure must be no stronger than order_success, and must not be release or acq_rel.\n+ */\n+AWS_STATIC_IMPL\n+bool aws_atomic_compare_exchange_ptr(\n+    volatile struct aws_atomic_var *var,\n+    void **expected,\n+    void *desired,\n+    enum aws_memory_order order_success,\n+    enum aws_memory_order order_failure) {\n+    return __atomic_compare_exchange_n(\n+        &var->ptrval,\n+        expected,\n+        desired,\n+        false,\n+        aws_atomic_priv_xlate_order(order_success),\n+        aws_atomic_priv_xlate_order(order_failure));\n+}\n+\n+/**\n+ * Atomically adds n to *var, and returns the previous value of *var.\n+ */\n+AWS_STATIC_IMPL\n+aws_atomic_int_impl_t aws_atomic_fetch_add(\n+    volatile struct aws_atomic_var *var,\n+    aws_atomic_int_impl_t n,\n+    enum aws_memory_order order) {\n+    return __atomic_fetch_add(&var->intval, n, aws_atomic_priv_xlate_order(order));\n+}\n+\n+/**\n+ * Atomically subtracts n from *var, and returns the previous value of *var.\n+ */\n+AWS_STATIC_IMPL\n+aws_atomic_int_impl_t aws_atomic_fetch_sub(\n+    volatile struct aws_atomic_var *var,\n+    aws_atomic_int_impl_t n,\n+    enum aws_memory_order order) {\n+    return __atomic_fetch_sub(&var->intval, n, aws_atomic_priv_xlate_order(order));\n+}\n+\n+/**\n+ * Atomically ORs n with *var, and returns the previous value of *var.\n+ */\n+AWS_STATIC_IMPL\n+aws_atomic_int_impl_t aws_atomic_fetch_or(\n+    volatile struct aws_atomic_var *var,\n+    aws_atomic_int_impl_t n,\n+    enum aws_memory_order order) {\n+    return __atomic_fetch_or(&var->intval, n, aws_atomic_priv_xlate_order(order));\n+}\n+\n+/**\n+ * Atomically ANDs n with *var, and returns the previous value of *var.\n+ */\n+AWS_STATIC_IMPL\n+aws_atomic_int_impl_t aws_atomic_fetch_and(\n+    volatile struct aws_atomic_var *var,\n+    aws_atomic_int_impl_t n,\n+    enum aws_memory_order order) {\n+    return __atomic_fetch_and(&var->intval, n, aws_atomic_priv_xlate_order(order));\n+}\n+\n+/**\n+ * Atomically XORs n with *var, and returns the previous value of *var.\n+ */\n+AWS_STATIC_IMPL\n+aws_atomic_int_impl_t aws_atomic_fetch_xor(\n+    volatile struct aws_atomic_var *var,\n+    aws_atomic_int_impl_t n,\n+    enum aws_memory_order order) {\n+    return __atomic_fetch_xor(&var->intval, n, aws_atomic_priv_xlate_order(order));\n+}\n+\n+/**\n+ * Provides the same reordering guarantees as an atomic operation with the specified memory order, without\n+ * needing to actually perform an atomic operation.\n+ */\n+AWS_STATIC_IMPL\n+void aws_atomic_thread_fence(enum aws_memory_order order) {\n+    __atomic_thread_fence(order);","path":"include/aws/common/atomics_gnu.inc","position":238,"original_position":238,"commit_id":"cb4d436d9a85757ef8e4389cbe3f6b3d16ef5e34","original_commit_id":"cb4d436d9a85757ef8e4389cbe3f6b3d16ef5e34","user":{"login":"bdonlan","id":9473,"node_id":"MDQ6VXNlcjk0NzM=","avatar_url":"https://avatars1.githubusercontent.com/u/9473?v=4","gravatar_id":"","url":"https://api.github.com/users/bdonlan","html_url":"https://github.com/bdonlan","followers_url":"https://api.github.com/users/bdonlan/followers","following_url":"https://api.github.com/users/bdonlan/following{/other_user}","gists_url":"https://api.github.com/users/bdonlan/gists{/gist_id}","starred_url":"https://api.github.com/users/bdonlan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdonlan/subscriptions","organizations_url":"https://api.github.com/users/bdonlan/orgs","repos_url":"https://api.github.com/users/bdonlan/repos","events_url":"https://api.github.com/users/bdonlan/events{/privacy}","received_events_url":"https://api.github.com/users/bdonlan/received_events","type":"User","site_admin":false},"body":"Ah, good catch.","created_at":"2018-09-11T16:50:34Z","updated_at":"2018-09-11T16:50:35Z","html_url":"https://github.com/awslabs/aws-c-common/pull/139#discussion_r216741370","pull_request_url":"https://api.github.com/repos/awslabs/aws-c-common/pulls/139","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/awslabs/aws-c-common/pulls/comments/216741370"},"html":{"href":"https://github.com/awslabs/aws-c-common/pull/139#discussion_r216741370"},"pull_request":{"href":"https://api.github.com/repos/awslabs/aws-c-common/pulls/139"}},"in_reply_to_id":216522511},"pull_request":{"url":"https://api.github.com/repos/awslabs/aws-c-common/pulls/139","id":214062459,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE0MDYyNDU5","html_url":"https://github.com/awslabs/aws-c-common/pull/139","diff_url":"https://github.com/awslabs/aws-c-common/pull/139.diff","patch_url":"https://github.com/awslabs/aws-c-common/pull/139.patch","issue_url":"https://api.github.com/repos/awslabs/aws-c-common/issues/139","number":139,"state":"open","locked":false,"title":"Implement atomics wrappers","user":{"login":"bdonlan","id":9473,"node_id":"MDQ6VXNlcjk0NzM=","avatar_url":"https://avatars1.githubusercontent.com/u/9473?v=4","gravatar_id":"","url":"https://api.github.com/users/bdonlan","html_url":"https://github.com/bdonlan","followers_url":"https://api.github.com/users/bdonlan/followers","following_url":"https://api.github.com/users/bdonlan/following{/other_user}","gists_url":"https://api.github.com/users/bdonlan/gists{/gist_id}","starred_url":"https://api.github.com/users/bdonlan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdonlan/subscriptions","organizations_url":"https://api.github.com/users/bdonlan/orgs","repos_url":"https://api.github.com/users/bdonlan/repos","events_url":"https://api.github.com/users/bdonlan/events{/privacy}","received_events_url":"https://api.github.com/users/bdonlan/received_events","type":"User","site_admin":false},"body":"*Issue #, if available:*\r\n\r\n*Description of changes:*\r\n\r\n\r\nBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.\r\n","created_at":"2018-09-07T23:41:43Z","updated_at":"2018-09-11T16:50:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fe1ead066771d8831ff7513eede5a305238c4148","assignee":null,"assignees":[],"requested_reviewers":[{"login":"ColdenCullen","id":1354824,"node_id":"MDQ6VXNlcjEzNTQ4MjQ=","avatar_url":"https://avatars1.githubusercontent.com/u/1354824?v=4","gravatar_id":"","url":"https://api.github.com/users/ColdenCullen","html_url":"https://github.com/ColdenCullen","followers_url":"https://api.github.com/users/ColdenCullen/followers","following_url":"https://api.github.com/users/ColdenCullen/following{/other_user}","gists_url":"https://api.github.com/users/ColdenCullen/gists{/gist_id}","starred_url":"https://api.github.com/users/ColdenCullen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ColdenCullen/subscriptions","organizations_url":"https://api.github.com/users/ColdenCullen/orgs","repos_url":"https://api.github.com/users/ColdenCullen/repos","events_url":"https://api.github.com/users/ColdenCullen/events{/privacy}","received_events_url":"https://api.github.com/users/ColdenCullen/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/awslabs/aws-c-common/pulls/139/commits","review_comments_url":"https://api.github.com/repos/awslabs/aws-c-common/pulls/139/comments","review_comment_url":"https://api.github.com/repos/awslabs/aws-c-common/pulls/comments{/number}","comments_url":"https://api.github.com/repos/awslabs/aws-c-common/issues/139/comments","statuses_url":"https://api.github.com/repos/awslabs/aws-c-common/statuses/cb4d436d9a85757ef8e4389cbe3f6b3d16ef5e34","head":{"label":"bdonlan:atomics","ref":"atomics","sha":"cb4d436d9a85757ef8e4389cbe3f6b3d16ef5e34","user":{"login":"bdonlan","id":9473,"node_id":"MDQ6VXNlcjk0NzM=","avatar_url":"https://avatars1.githubusercontent.com/u/9473?v=4","gravatar_id":"","url":"https://api.github.com/users/bdonlan","html_url":"https://github.com/bdonlan","followers_url":"https://api.github.com/users/bdonlan/followers","following_url":"https://api.github.com/users/bdonlan/following{/other_user}","gists_url":"https://api.github.com/users/bdonlan/gists{/gist_id}","starred_url":"https://api.github.com/users/bdonlan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdonlan/subscriptions","organizations_url":"https://api.github.com/users/bdonlan/orgs","repos_url":"https://api.github.com/users/bdonlan/repos","events_url":"https://api.github.com/users/bdonlan/events{/privacy}","received_events_url":"https://api.github.com/users/bdonlan/received_events","type":"User","site_admin":false},"repo":{"id":121189574,"node_id":"MDEwOlJlcG9zaXRvcnkxMjExODk1NzQ=","name":"aws-c-common","full_name":"bdonlan/aws-c-common","owner":{"login":"bdonlan","id":9473,"node_id":"MDQ6VXNlcjk0NzM=","avatar_url":"https://avatars1.githubusercontent.com/u/9473?v=4","gravatar_id":"","url":"https://api.github.com/users/bdonlan","html_url":"https://github.com/bdonlan","followers_url":"https://api.github.com/users/bdonlan/followers","following_url":"https://api.github.com/users/bdonlan/following{/other_user}","gists_url":"https://api.github.com/users/bdonlan/gists{/gist_id}","starred_url":"https://api.github.com/users/bdonlan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdonlan/subscriptions","organizations_url":"https://api.github.com/users/bdonlan/orgs","repos_url":"https://api.github.com/users/bdonlan/repos","events_url":"https://api.github.com/users/bdonlan/events{/privacy}","received_events_url":"https://api.github.com/users/bdonlan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bdonlan/aws-c-common","description":"Core c99 package for AWS SDK for C. Includes cross-platform primitives, configuration, data structures, and error handling.","fork":true,"url":"https://api.github.com/repos/bdonlan/aws-c-common","forks_url":"https://api.github.com/repos/bdonlan/aws-c-common/forks","keys_url":"https://api.github.com/repos/bdonlan/aws-c-common/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bdonlan/aws-c-common/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bdonlan/aws-c-common/teams","hooks_url":"https://api.github.com/repos/bdonlan/aws-c-common/hooks","issue_events_url":"https://api.github.com/repos/bdonlan/aws-c-common/issues/events{/number}","events_url":"https://api.github.com/repos/bdonlan/aws-c-common/events","assignees_url":"https://api.github.com/repos/bdonlan/aws-c-common/assignees{/user}","branches_url":"https://api.github.com/repos/bdonlan/aws-c-common/branches{/branch}","tags_url":"https://api.github.com/repos/bdonlan/aws-c-common/tags","blobs_url":"https://api.github.com/repos/bdonlan/aws-c-common/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bdonlan/aws-c-common/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bdonlan/aws-c-common/git/refs{/sha}","trees_url":"https://api.github.com/repos/bdonlan/aws-c-common/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bdonlan/aws-c-common/statuses/{sha}","languages_url":"https://api.github.com/repos/bdonlan/aws-c-common/languages","stargazers_url":"https://api.github.com/repos/bdonlan/aws-c-common/stargazers","contributors_url":"https://api.github.com/repos/bdonlan/aws-c-common/contributors","subscribers_url":"https://api.github.com/repos/bdonlan/aws-c-common/subscribers","subscription_url":"https://api.github.com/repos/bdonlan/aws-c-common/subscription","commits_url":"https://api.github.com/repos/bdonlan/aws-c-common/commits{/sha}","git_commits_url":"https://api.github.com/repos/bdonlan/aws-c-common/git/commits{/sha}","comments_url":"https://api.github.com/repos/bdonlan/aws-c-common/comments{/number}","issue_comment_url":"https://api.github.com/repos/bdonlan/aws-c-common/issues/comments{/number}","contents_url":"https://api.github.com/repos/bdonlan/aws-c-common/contents/{+path}","compare_url":"https://api.github.com/repos/bdonlan/aws-c-common/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bdonlan/aws-c-common/merges","archive_url":"https://api.github.com/repos/bdonlan/aws-c-common/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bdonlan/aws-c-common/downloads","issues_url":"https://api.github.com/repos/bdonlan/aws-c-common/issues{/number}","pulls_url":"https://api.github.com/repos/bdonlan/aws-c-common/pulls{/number}","milestones_url":"https://api.github.com/repos/bdonlan/aws-c-common/milestones{/number}","notifications_url":"https://api.github.com/repos/bdonlan/aws-c-common/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bdonlan/aws-c-common/labels{/name}","releases_url":"https://api.github.com/repos/bdonlan/aws-c-common/releases{/id}","deployments_url":"https://api.github.com/repos/bdonlan/aws-c-common/deployments","created_at":"2018-02-12T02:17:36Z","updated_at":"2018-03-16T10:02:51Z","pushed_at":"2018-09-11T00:09:16Z","git_url":"git://github.com/bdonlan/aws-c-common.git","ssh_url":"git@github.com:bdonlan/aws-c-common.git","clone_url":"https://github.com/bdonlan/aws-c-common.git","svn_url":"https://github.com/bdonlan/aws-c-common","homepage":null,"size":624,"stargazers_count":1,"watchers_count":1,"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","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"awslabs:master","ref":"master","sha":"a3bb03150a7129ae34ec67a2c3dd4c7891a219aa","user":{"login":"awslabs","id":3299148,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyOTkxNDg=","avatar_url":"https://avatars0.githubusercontent.com/u/3299148?v=4","gravatar_id":"","url":"https://api.github.com/users/awslabs","html_url":"https://github.com/awslabs","followers_url":"https://api.github.com/users/awslabs/followers","following_url":"https://api.github.com/users/awslabs/following{/other_user}","gists_url":"https://api.github.com/users/awslabs/gists{/gist_id}","starred_url":"https://api.github.com/users/awslabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awslabs/subscriptions","organizations_url":"https://api.github.com/users/awslabs/orgs","repos_url":"https://api.github.com/users/awslabs/repos","events_url":"https://api.github.com/users/awslabs/events{/privacy}","received_events_url":"https://api.github.com/users/awslabs/received_events","type":"Organization","site_admin":false},"repo":{"id":117142517,"node_id":"MDEwOlJlcG9zaXRvcnkxMTcxNDI1MTc=","name":"aws-c-common","full_name":"awslabs/aws-c-common","owner":{"login":"awslabs","id":3299148,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyOTkxNDg=","avatar_url":"https://avatars0.githubusercontent.com/u/3299148?v=4","gravatar_id":"","url":"https://api.github.com/users/awslabs","html_url":"https://github.com/awslabs","followers_url":"https://api.github.com/users/awslabs/followers","following_url":"https://api.github.com/users/awslabs/following{/other_user}","gists_url":"https://api.github.com/users/awslabs/gists{/gist_id}","starred_url":"https://api.github.com/users/awslabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awslabs/subscriptions","organizations_url":"https://api.github.com/users/awslabs/orgs","repos_url":"https://api.github.com/users/awslabs/repos","events_url":"https://api.github.com/users/awslabs/events{/privacy}","received_events_url":"https://api.github.com/users/awslabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/awslabs/aws-c-common","description":"Core c99 package for AWS SDK for C. Includes cross-platform primitives, configuration, data structures, and error handling.","fork":false,"url":"https://api.github.com/repos/awslabs/aws-c-common","forks_url":"https://api.github.com/repos/awslabs/aws-c-common/forks","keys_url":"https://api.github.com/repos/awslabs/aws-c-common/keys{/key_id}","collaborators_url":"https://api.github.com/repos/awslabs/aws-c-common/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/awslabs/aws-c-common/teams","hooks_url":"https://api.github.com/repos/awslabs/aws-c-common/hooks","issue_events_url":"https://api.github.com/repos/awslabs/aws-c-common/issues/events{/number}","events_url":"https://api.github.com/repos/awslabs/aws-c-common/events","assignees_url":"https://api.github.com/repos/awslabs/aws-c-common/assignees{/user}","branches_url":"https://api.github.com/repos/awslabs/aws-c-common/branches{/branch}","tags_url":"https://api.github.com/repos/awslabs/aws-c-common/tags","blobs_url":"https://api.github.com/repos/awslabs/aws-c-common/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/awslabs/aws-c-common/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/awslabs/aws-c-common/git/refs{/sha}","trees_url":"https://api.github.com/repos/awslabs/aws-c-common/git/trees{/sha}","statuses_url":"https://api.github.com/repos/awslabs/aws-c-common/statuses/{sha}","languages_url":"https://api.github.com/repos/awslabs/aws-c-common/languages","stargazers_url":"https://api.github.com/repos/awslabs/aws-c-common/stargazers","contributors_url":"https://api.github.com/repos/awslabs/aws-c-common/contributors","subscribers_url":"https://api.github.com/repos/awslabs/aws-c-common/subscribers","subscription_url":"https://api.github.com/repos/awslabs/aws-c-common/subscription","commits_url":"https://api.github.com/repos/awslabs/aws-c-common/commits{/sha}","git_commits_url":"https://api.github.com/repos/awslabs/aws-c-common/git/commits{/sha}","comments_url":"https://api.github.com/repos/awslabs/aws-c-common/comments{/number}","issue_comment_url":"https://api.github.com/repos/awslabs/aws-c-common/issues/comments{/number}","contents_url":"https://api.github.com/repos/awslabs/aws-c-common/contents/{+path}","compare_url":"https://api.github.com/repos/awslabs/aws-c-common/compare/{base}...{head}","merges_url":"https://api.github.com/repos/awslabs/aws-c-common/merges","archive_url":"https://api.github.com/repos/awslabs/aws-c-common/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/awslabs/aws-c-common/downloads","issues_url":"https://api.github.com/repos/awslabs/aws-c-common/issues{/number}","pulls_url":"https://api.github.com/repos/awslabs/aws-c-common/pulls{/number}","milestones_url":"https://api.github.com/repos/awslabs/aws-c-common/milestones{/number}","notifications_url":"https://api.github.com/repos/awslabs/aws-c-common/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/awslabs/aws-c-common/labels{/name}","releases_url":"https://api.github.com/repos/awslabs/aws-c-common/releases{/id}","deployments_url":"https://api.github.com/repos/awslabs/aws-c-common/deployments","created_at":"2018-01-11T19:17:12Z","updated_at":"2018-09-10T23:13:48Z","pushed_at":"2018-09-11T00:32:18Z","git_url":"git://github.com/awslabs/aws-c-common.git","ssh_url":"git@github.com:awslabs/aws-c-common.git","clone_url":"https://github.com/awslabs/aws-c-common.git","svn_url":"https://github.com/awslabs/aws-c-common","homepage":null,"size":704,"stargazers_count":28,"watchers_count":28,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":13,"open_issues":11,"watchers":28,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/awslabs/aws-c-common/pulls/139"},"html":{"href":"https://github.com/awslabs/aws-c-common/pull/139"},"issue":{"href":"https://api.github.com/repos/awslabs/aws-c-common/issues/139"},"comments":{"href":"https://api.github.com/repos/awslabs/aws-c-common/issues/139/comments"},"review_comments":{"href":"https://api.github.com/repos/awslabs/aws-c-common/pulls/139/comments"},"review_comment":{"href":"https://api.github.com/repos/awslabs/aws-c-common/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/awslabs/aws-c-common/pulls/139/commits"},"statuses":{"href":"https://api.github.com/repos/awslabs/aws-c-common/statuses/cb4d436d9a85757ef8e4389cbe3f6b3d16ef5e34"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"bdonlan"}}