Explain commit e175152ef7.

--
This commit is contained in:
Werner Koch 2017-01-30 12:07:46 +01:00
parent 2a025039c1
commit 1ec7dc4e55
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 9 additions and 1 deletions

View File

@ -481,7 +481,15 @@ agent_store_cache_hit (const char *key)
/* To make sure the update is atomic under the non-preemptive thread
* model, we must make sure not to surrender control to a different
* thread. Therefore, we avoid calling the allocator during the
* update. */
* update.
*
* Background: xtrystrdup uses gcry_strdup which may use the secure
* memory allocator of Libgcrypt. That allocator takes locks and
* since version 1.14 libgpg-error is nPth aware and thus talking a
* lock may now lead to thread switch. Note that this only happens
* when secure memory is allocated, the standard allocator uses
* malloc which is not nPth aware.
*/
new = key ? xtrystrdup (key) : NULL;
/* Atomic update. */