mirror of
https://github.com/irssi/irssi.git
synced 2024-11-03 04:27:19 -05:00
fix race condition in terminal init
remove the tcgetattr call to a single time on irssi load instead of querying it each time. Fixes #450
This commit is contained in:
parent
f7658640fb
commit
938d0071c6
@ -496,7 +496,7 @@ void terminfo_setup_colors(TERM_REC *term, int force)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void terminfo_input_init(TERM_REC *term)
|
static void terminfo_input_init0(TERM_REC *term)
|
||||||
{
|
{
|
||||||
tcgetattr(fileno(term->in), &term->old_tio);
|
tcgetattr(fileno(term->in), &term->old_tio);
|
||||||
memcpy(&term->tio, &term->old_tio, sizeof(term->tio));
|
memcpy(&term->tio, &term->old_tio, sizeof(term->tio));
|
||||||
@ -518,8 +518,11 @@ static void terminfo_input_init(TERM_REC *term)
|
|||||||
term->tio.c_cc[VSUSP] = _POSIX_VDISABLE;
|
term->tio.c_cc[VSUSP] = _POSIX_VDISABLE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
tcsetattr(fileno(term->in), TCSADRAIN, &term->tio);
|
}
|
||||||
|
|
||||||
|
static void terminfo_input_init(TERM_REC *term)
|
||||||
|
{
|
||||||
|
tcsetattr(fileno(term->in), TCSADRAIN, &term->tio);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void terminfo_input_deinit(TERM_REC *term)
|
static void terminfo_input_deinit(TERM_REC *term)
|
||||||
@ -673,6 +676,7 @@ static int term_setup(TERM_REC *term)
|
|||||||
term->beep = term->TI_bel ? _beep : _ignore;
|
term->beep = term->TI_bel ? _beep : _ignore;
|
||||||
|
|
||||||
terminfo_setup_colors(term, FALSE);
|
terminfo_setup_colors(term, FALSE);
|
||||||
|
terminfo_input_init0(term);
|
||||||
terminfo_cont(term);
|
terminfo_cont(term);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user