mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-22 19:44:10 +02:00
Universally-unique gensyms
* libguile/symbols.c (scm_gensym): Make the gensym counter a 128-bit thread-local, initialized to a random number upon the first call to `gensym' within a given thread. This counter is rendered as a 22 byte suffix of mostly base64 digits. * libguile/threads.h (scm_i_thread): Add a thread-local gensym_counter. * libguile/threads.c (guilify_self_1): Initialize gensym_counter to NULL.
This commit is contained in:
parent
d47db067b6
commit
ad432bc831
3 changed files with 44 additions and 11 deletions
|
@ -545,6 +545,7 @@ guilify_self_1 (struct GC_stack_base *base)
|
|||
t.join_queue = SCM_EOL;
|
||||
t.dynamic_state = SCM_BOOL_F;
|
||||
t.dynwinds = SCM_EOL;
|
||||
t.gensym_counter = NULL;
|
||||
t.active_asyncs = SCM_EOL;
|
||||
t.block_asyncs = 1;
|
||||
t.pending_asyncs = 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue