* 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:
nobu 2008-02-19 05:27:35 +00:00
Родитель b81a66d1ef
Коммит 8a9bd6a5c6
2 изменённых файлов: 19 добавлений и 2 удалений

Просмотреть файл

@ -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)