diff options
author | CoprDistGit <infra@openeuler.org> | 2023-10-26 07:13:04 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-10-26 07:13:04 +0000 |
commit | 0b7f50a76cdf3febc95fd5d24c220f9f2b4063e7 (patch) | |
tree | 2e316dcb876cd56a696fefade557cb35b68abff3 /0001-Optimizing-__random-for-single-threaded-scenarios.patch | |
parent | 4d703ac84a58f22c5f93c1f5be4ea0cc21927101 (diff) |
automatic import of glibcopeneuler23.09
Diffstat (limited to '0001-Optimizing-__random-for-single-threaded-scenarios.patch')
-rw-r--r-- | 0001-Optimizing-__random-for-single-threaded-scenarios.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/0001-Optimizing-__random-for-single-threaded-scenarios.patch b/0001-Optimizing-__random-for-single-threaded-scenarios.patch new file mode 100644 index 0000000..cbc113e --- /dev/null +++ b/0001-Optimizing-__random-for-single-threaded-scenarios.patch @@ -0,0 +1,44 @@ +From f54e1ddea12343991b402abf28be2b94ffbac2c5 Mon Sep 17 00:00:00 2001 +From: Tian Tao <tiantao6@hisilicon.com> +Date: Tue, 11 Jul 2023 08:42:56 +0800 +Subject: [PATCH] Optimizing __random for single-threaded scenarios + +The __random function does not need to be locked by __libc_lock_lock and +unlocked by __libc_lock_unlock in a single-threaded scenario, so we can +remove these locks in a single-threaded scenario to improve performance. + +Signed-off-by: Tian Tao <tiantao6@hisilicon.com> +--- + stdlib/random.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/stdlib/random.c b/stdlib/random.c +index 62f22fac8d..9035df8d18 100644 +--- a/stdlib/random.c ++++ b/stdlib/random.c +@@ -288,11 +288,19 @@ __random (void) + { + int32_t retval; + +- __libc_lock_lock (lock); ++ if (__libc_single_threaded) { + +- (void) __random_r (&unsafe_state, &retval); ++ (void) __random_r (&unsafe_state, &retval); + +- __libc_lock_unlock (lock); ++ } else { ++ ++ __libc_lock_lock (lock); ++ ++ (void) __random_r (&unsafe_state, &retval); ++ ++ __libc_lock_unlock (lock); ++ ++ } + + return retval; + } +-- +2.33.0 + |