Mark H Weaver <m...@netris.org> skribis: > l...@gnu.org (Ludovic Courtès) writes: > >> Mark H Weaver <m...@netris.org> skribis: >> >>> --- a/doc/ref/api-modules.texi >>> +++ b/doc/ref/api-modules.texi >>> @@ -942,14 +942,15 @@ the @var{name} is not bound in the module, signals an >>> error. Returns a >>> variable, always. >>> >>> @example >>> -SCM my_eval_string (SCM str) >>> -@{ >>> - static SCM eval_string_var = SCM_BOOL_F; >>> +static SCM eval_string_var; >>> >>> - if (scm_is_false (eval_string_var)) >>> - eval_string_var = >>> - scm_c_public_lookup ("ice-9 eval-string", "eval-string"); >>> +void my_init (void) >>> +@{ >>> + eval_string_var = scm_c_public_lookup ("ice-9 eval-string", >>> "eval-string"); >>> +@} >>> >>> +SCM my_eval_string (SCM str) >>> +@{ >>> return scm_call_1 (scm_variable_ref (eval_string_var), str); >>> @} >>> @end example >> >> The doc should say something about ‘my_init’, and perhaps mention >> locking? > > Can you suggest some text? 'my_init' seems obvious to me, and given > that this is just an example for 'scm_c_*_lookup', it seems out of place > to talk about general locking issues here, but feel free to propose some > text to go here.
Agreed. Perhaps just something like: “Note that the program should ensure that ‘my_init’ is called only once, and in a thread-safe way.” Ludo’.