Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Interrupting globs (Re: Something rotten in tar completion)

On Dec 7,  5:07pm, Peter Stephenson wrote:
} Other issues:
} Mikael needs to ^C three times to get back to the command line ---
} apparently related to the code from Sven I took at its word.

(Sven is Oberon?  If that's true, I'd entirely forgotten it.)

} I agree we might want to look at some always blocks.  BTW, I didn't
} actually think through the handling of "always" blocks for this patch,
} so it might want looking at.

In particular with respect to always-blocks, there should be some way
for TRY_BLOCK_ERROR to clear interrupts as well as (maybe even instead
of?  TRY_BLOCK_INTERRUPT?) internal errors.  A trap that returns zero
only clears interrupt if there isn't another trap in a deeper scope.

Maybe TRY_BLOCK_ERROR does still clear both in the patch, I didn't
parse it that carefully.

} It's also just occurred to me I may have introduced some rare but
} entirely possible read-modify-write races because we set the ERRFLAG_INT
} bit in interrupts and set the other and clear both bits separately in
} the main shell.  I guess it would be better to queue interrupts whenever
} we add or remove a single bit of errflag

I don't think single bits are a problem because it's always done with
bitwise-or.  If anything, we'd need to queue any time we clear the
interrupt bit, so that a signal that comes in while we're clearing it
gets treated as if arrived after clearing.  In practice I don't think
it makes that much difference.

Messages sorted by: Reverse Date, Date, Thread, Author