1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-17 09:10:22 +02:00

locking on unget_byte, ungetc, ungets

* libguile/ports.h:
* libguile/ports.c (scm_unget_byte_unlocked, scm_unget_byte)
  (scm_ungetc_unlocked, scm_ungetc, scm_ungets_unlocked, scm_ungets):
  Add locking and _unlocked variants.

* libguile/arrays.c:
* libguile/rdelim.c:
* libguile/read.c:
* libguile/vports.c: Adapt callers to use the _unlocked variants.
This commit is contained in:
Andy Wingo 2011-11-08 00:14:16 +01:00
parent be632904ca
commit c932ce0b55
6 changed files with 63 additions and 38 deletions

View file

@ -862,7 +862,7 @@ scm_i_read_array (SCM port, int c)
*/
if (c == '(')
{
scm_ungetc (c, port);
scm_ungetc_unlocked (c, port);
return scm_vector (scm_read (port));
}
@ -874,7 +874,7 @@ scm_i_read_array (SCM port, int c)
if (c != '3' && c != '6')
{
if (c != EOF)
scm_ungetc (c, port);
scm_ungetc_unlocked (c, port);
return SCM_BOOL_F;
}
rank = 1;
@ -954,7 +954,7 @@ scm_i_read_array (SCM port, int c)
scm_i_input_error (NULL, port,
"missing '(' in vector or array literal",
SCM_EOL);
scm_ungetc (c, port);
scm_ungetc_unlocked (c, port);
elements = scm_read (port);
if (scm_is_false (shape))