Make more threading improvements

- ASAN memory morgue is now lockless
- Make C11 atomics header more portable
- Rewrote pthread keys support to be lockless
- Simplify Python's unicode table unpacking code
- Make crash report write(2) closer to being atomic
- Make it possible to strace/ftrace a single thread
- ASAN now checks nul-terminated strings fast and properly
- Windows fork() now restores TLS memory of calling thread
This commit is contained in:
Justine Tunney 2022-11-01 22:36:03 -07:00
parent d7b88734cd
commit e522aa3a07
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
189 changed files with 1363 additions and 1217 deletions

View file

@ -480,7 +480,7 @@ static void PtyWriteTab(struct Pty *pty) {
}
}
int PtyAtoi(const char *s, const char **e) {
static int PtyAtoi(const char *s, const char **e) {
int i;
for (i = 0; isdigit(*s); ++s) i *= 10, i += *s - '0';
if (e) *e = s;
@ -1102,7 +1102,8 @@ ssize_t PtyWrite(struct Pty *pty, const void *data, size_t n) {
if (--pty->n8) break;
}
wc = pty->u8;
if ((0x00 <= wc && wc <= 0x1F) || (0x7F <= wc && wc <= 0x9F)) {
if ((0x00 <= wc && wc <= 0x1F) || //
(0x7F <= wc && wc <= 0x9F)) {
PtyCntrl(pty, wc);
} else {
PtyWriteGlyph(pty, wc, wcwidth(wc));