зеркало из https://github.com/github/ruby.git
* ext/readline/readline.c (readline_event): prevent polling. based on
a patch from error errorsson in [ruby-Bugs-17675]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
b81a66d1ef
Коммит
8a9bd6a5c6
|
@ -1,3 +1,8 @@
|
|||
Tue Feb 19 14:27:32 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* ext/readline/readline.c (readline_event): prevent polling. based on
|
||||
a patch from error errorsson in [ruby-Bugs-17675].
|
||||
|
||||
Tue Feb 19 11:14:13 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* eval.c (ruby_exec_node): no thread starts inside iseq compilation.
|
||||
|
|
|
@ -43,16 +43,28 @@ static ID completion_proc, completion_case_fold;
|
|||
# define rl_completion_matches completion_matches
|
||||
#endif
|
||||
|
||||
static int readline_event(void);
|
||||
static char **readline_attempted_completion_function(const char *text,
|
||||
int start, int end);
|
||||
|
||||
#ifdef HAVE_RL_EVENT_HOOK
|
||||
#define BUSY_WAIT 0
|
||||
|
||||
static int readline_event(void);
|
||||
static int
|
||||
readline_event()
|
||||
readline_event(void)
|
||||
{
|
||||
#if BUSY_WAIT
|
||||
rb_thread_schedule();
|
||||
#else
|
||||
fd_set rset;
|
||||
|
||||
FD_ZERO(&rset);
|
||||
FD_SET(fileno(rl_instream), &rset);
|
||||
rb_thread_select(fileno(rl_instream) + 1, &rset, NULL, NULL, NULL);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static VALUE
|
||||
readline_readline(int argc, VALUE *argv, VALUE self)
|
||||
|
|
Загрузка…
Ссылка в новой задаче