mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-03 13:20:26 +02:00
* async.c (scm_take_signal): Doc fixes.
This commit is contained in:
parent
91088deffc
commit
e4d24f3af1
1 changed files with 12 additions and 4 deletions
|
@ -660,10 +660,18 @@ scm_take_signal (n)
|
||||||
SCM ignored;
|
SCM ignored;
|
||||||
if (!scm_ints_disabled)
|
if (!scm_ints_disabled)
|
||||||
{
|
{
|
||||||
SCM_NEWCELL (ignored); /* In case we interrupted SCM_NEWCELL,
|
/* For reasons of speed, the SCM_NEWCELL macro doesn't defer
|
||||||
* throw out the possibly already allocated
|
interrupts. Instead, it first sets its argument to point to
|
||||||
* free cell.
|
the first cell in the list, and then advances the freelist
|
||||||
*/
|
pointer to the next cell. Now, if this procedure is
|
||||||
|
interrupted, the only anomalous state possible is to have
|
||||||
|
both SCM_NEWCELL's argument and scm_freelist pointing to the
|
||||||
|
same cell. To deal with this case, we always throw away the
|
||||||
|
first cell in scm_freelist here.
|
||||||
|
|
||||||
|
At least, that's the theory. I'm not convinced that that's
|
||||||
|
the only anomalous path we need to worry about. */
|
||||||
|
SCM_NEWCELL (ignored);
|
||||||
}
|
}
|
||||||
scm_system_async_mark (system_signal_asyncs[SCM_SIG_ORD(n)]);
|
scm_system_async_mark (system_signal_asyncs[SCM_SIG_ORD(n)]);
|
||||||
return SCM_BOOL_F;
|
return SCM_BOOL_F;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue