mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-02 13:00: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;
|
||||
if (!scm_ints_disabled)
|
||||
{
|
||||
SCM_NEWCELL (ignored); /* In case we interrupted SCM_NEWCELL,
|
||||
* throw out the possibly already allocated
|
||||
* free cell.
|
||||
*/
|
||||
/* For reasons of speed, the SCM_NEWCELL macro doesn't defer
|
||||
interrupts. Instead, it first sets its argument to point to
|
||||
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)]);
|
||||
return SCM_BOOL_F;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue