{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1754122250,
"reponame":"openssl",
"desc":"OpenSSL",
"owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://warmcat.com/repo/openssl",
"f":3,
"items": [
{"schema":"libjg2-1",
"cid":"26c6190fb0d1060c50ead4b8ad88e166",
"commit": {"type":"commit",
"time": 1534502439,
"time_ofs": 120,
"oid_tree": { "oid": "1de96a34e4be5136cb43333291483cd25a7ecaa2", "alias": []},
"oid":{ "oid": "d2b863643d94704abd9840519cfc54d22d0481fe", "alias": []},
"msg": "crypto/threads_*: remove CRYPTO_atomic_{read|write}.",
"sig_commit": { "git_time": { "time": 1534502439, "offset": 120 }, "name": "Andy Polyakov", "email": "appro@openssl.org", "md5": "50bd64fa2a792cbbf679fa16213a3b2a" },
"sig_author": { "git_time": { "time": 1534193594, "offset": 120 }, "name": "Andy Polyakov", "email": "appro@openssl.org", "md5": "50bd64fa2a792cbbf679fa16213a3b2a" }},
"body": "crypto/threads_*: remove CRYPTO_atomic_{read|write}.\n\nCRYPTO_atomic_read was added with intention to read statistics counters,\nbut readings are effectively indistinguishable from regular load (even\nin non-lock-free case). This is because you can get out-dated value in\nboth cases. CRYPTO_atomic_write was added for symmetry and was never used.\n\nReviewed-by: Kurt Roeckx \u003ckurt@roeckx.be\u003e\n(Merged from https://github.com/openssl/openssl/pull/6883)\n"
,
"diff": "diff --git a/crypto/threads_none.c b/crypto/threads_none.c\nindex ab6db8e..4b1940a 100644\n--- a/crypto/threads_none.c\n+++ b/crypto/threads_none.c\n@@ -128,18 +128,6 @@ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)\n return 1;\n }\n \n-int CRYPTO_atomic_read(int *val, int *ret, CRYPTO_RWLOCK *lock)\n-{\n- *ret \u003d *val;\n- return 1;\n-}\n-\n-int CRYPTO_atomic_write(int *val, int n, CRYPTO_RWLOCK *lock)\n-{\n- *val \u003d n;\n- return 1;\n-}\n-\n int openssl_init_fork_handlers(void)\n {\n return 0;\ndiff --git a/crypto/threads_pthread.c b/crypto/threads_pthread.c\nindex 8d30e1c..5a59779 100644\n--- a/crypto/threads_pthread.c\n+++ b/crypto/threads_pthread.c\n@@ -175,44 +175,6 @@ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)\n return 1;\n }\n \n-int CRYPTO_atomic_read(int *val, int *ret, CRYPTO_RWLOCK *lock)\n-{\n-# if defined(__GNUC__) \u0026\u0026 defined(__ATOMIC_ACQUIRE)\n- if (__atomic_is_lock_free(sizeof(*val), val)) {\n- __atomic_load(val, ret, __ATOMIC_ACQUIRE);\n- return 1;\n- }\n-# endif\n- if (!CRYPTO_THREAD_read_lock(lock))\n- return 0;\n-\n- *ret \u003d *val;\n-\n- if (!CRYPTO_THREAD_unlock(lock))\n- return 0;\n-\n- return 1;\n-}\n-\n-int CRYPTO_atomic_write(int *val, int n, CRYPTO_RWLOCK *lock)\n-{\n-# if defined(__GNUC__) \u0026\u0026 defined(__ATOMIC_RELEASE)\n- if (__atomic_is_lock_free(sizeof(*val), val)) {\n- __atomic_store(val, \u0026n, __ATOMIC_RELEASE);\n- return 1;\n- }\n-# endif\n- if (!CRYPTO_THREAD_write_lock(lock))\n- return 0;\n-\n- *val \u003d n;\n-\n- if (!CRYPTO_THREAD_unlock(lock))\n- return 0;\n-\n- return 1;\n-}\n-\n # ifdef OPENSSL_SYS_UNIX\n static pthread_once_t fork_once_control \u003d PTHREAD_ONCE_INIT;\n \ndiff --git a/crypto/threads_win.c b/crypto/threads_win.c\nindex 7fdbc1f..d8fdfb7 100644\n--- a/crypto/threads_win.c\n+++ b/crypto/threads_win.c\n@@ -155,18 +155,6 @@ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)\n return 1;\n }\n \n-int CRYPTO_atomic_read(int *val, int *ret, CRYPTO_RWLOCK *lock)\n-{\n- *ret \u003d InterlockedCompareExchange(val, 0, 0);\n- return 1;\n-}\n-\n-int CRYPTO_atomic_write(int *val, int n, CRYPTO_RWLOCK *lock)\n-{\n- InterlockedExchange(val, n);\n- return 1;\n-}\n-\n int openssl_init_fork_handlers(void)\n {\n return 0;\ndiff --git a/doc/man3/CRYPTO_THREAD_run_once.pod b/doc/man3/CRYPTO_THREAD_run_once.pod\nindex a290278..3277613 100644\n--- a/doc/man3/CRYPTO_THREAD_run_once.pod\n+++ b/doc/man3/CRYPTO_THREAD_run_once.pod\n@@ -4,8 +4,8 @@\n \n CRYPTO_THREAD_run_once,\n CRYPTO_THREAD_lock_new, CRYPTO_THREAD_read_lock, CRYPTO_THREAD_write_lock,\n-CRYPTO_THREAD_unlock, CRYPTO_THREAD_lock_free, CRYPTO_atomic_add,\n-CRYPTO_atomic_read, CRYPTO_atomic_write - OpenSSL thread support\n+CRYPTO_THREAD_unlock, CRYPTO_THREAD_lock_free,\n+CRYPTO_atomic_add - OpenSSL thread support\n \n \u003dhead1 SYNOPSIS\n \n@@ -21,8 +21,6 @@ CRYPTO_atomic_read, CRYPTO_atomic_write - OpenSSL thread support\n void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock);\n \n int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock);\n- int CRYPTO_atomic_read(int *val, int *ret, CRYPTO_RWLOCK *lock);\n- int CRYPTO_atomic_write(int *val, int n, CRYPTO_RWLOCK *lock);\n \n \u003dhead1 DESCRIPTION\n \n@@ -77,17 +75,6 @@ operations are supported on the specific platform. Because of this, if a\n variable is modified by CRYPTO_atomic_add() then CRYPTO_atomic_add() must\n be the only way that the variable is modified.\n \n-\u003ditem *\n-\n-CRYPTO_atomic_read() atomically reads B\u003cval\u003e and returns the result of\n-the operation in B\u003cret\u003e. B\u003clock\u003e will be locked, unless atomic operations\n-are supported on the specific platform.\n-\n-\u003ditem *\n-\n-CRYPTO_atomic_write() atomically writes B\u003cn\u003e to B\u003cval\u003e. B\u003clock\u003e will be\n-locked, unless atomic operations are supported on the specific platform.\n-\n \u003dback\n \n \u003dhead1 RETURN VALUES\ndiff --git a/include/openssl/crypto.h b/include/openssl/crypto.h\nindex c2ad65e..7e50b1b 100644\n--- a/include/openssl/crypto.h\n+++ b/include/openssl/crypto.h\n@@ -73,8 +73,6 @@ int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock);\n void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock);\n \n int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock);\n-int CRYPTO_atomic_read(int *val, int *ret, CRYPTO_RWLOCK *lock);\n-int CRYPTO_atomic_write(int *val, int n, CRYPTO_RWLOCK *lock);\n \n /*\n * The following can be used to detect memory leaks in the library. If\ndiff --git a/util/libcrypto.num b/util/libcrypto.num\nindex ed8a8f0..d69a6dc 100644\n--- a/util/libcrypto.num\n+++ b/util/libcrypto.num\n@@ -4396,8 +4396,6 @@ EVP_PKEY_meth_set_check 4341\t1_1_1\tEXIST::FUNCTION:\n EVP_PKEY_meth_get_check 4342\t1_1_1\tEXIST::FUNCTION:\n EVP_PKEY_meth_remove 4343\t1_1_1\tEXIST::FUNCTION:\n OPENSSL_sk_reserve 4344\t1_1_1\tEXIST::FUNCTION:\n-CRYPTO_atomic_read 4345\t1_1_1\tEXIST::FUNCTION:\n-CRYPTO_atomic_write 4346\t1_1_1\tEXIST::FUNCTION:\n EVP_PKEY_set1_engine 4347\t1_1_0g\tEXIST::FUNCTION:ENGINE\n DH_new_by_nid 4348\t1_1_1\tEXIST::FUNCTION:DH\n DH_get_nid 4349\t1_1_1\tEXIST::FUNCTION:DH\n","s":{"c":1754122250,"u": 44885}}
],"g": 46707,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}