[#4346] Segmentation fault — Andrew Walrond <andrew@...>
FYI, just got this random unexpected crash
On 01 Feb 2005, at 07:33, Andrew Walrond wrote:
[#4360] Adding lastlog info to etc — "Berger, Daniel" <Daniel.Berger@...>
Hi all,
[#4368] 'when (cond):' causes SyntaxError — "NAKAMURA, Hiroshi" <nakahiro@...>
Hi,
[#4385] add color_set support to curses.c — Paul Duncan <pabs@...>
I'm not sure why this is missing from the Curses binding, but the
[#4392] HTTP Basic authentication for open_uri — Kent Sibilev <ksibilev@...>
Can somebody apply the following patch for open_uri in order to enable
[#4402] BUG: Struct.new(:a?).instance_methods — "Cs. Henk" <csaba-ml@...>
Hi, getting an ArgumentError with "NULL pointer given" doesn't seem to
[#4403] Re: Unknown OS X 10.2 Socket constants (+script to generate) — Sam Roberts <sroberts@...>
Quoteing matz@ruby-lang.org, on Tue, Feb 08, 2005 at 01:21:18PM +0900:
[#4427] Re: windows socket connection freeze — ville.mattila@...
[#4432] curses + threads = non-blocking getch — William Morgan <wmorgan-ruby-core@...>
Hello experts,
In article <20050214231544.GE26414@masanjin.net>,
[#4439] Thread-safe Ruby Status? — Vincent Isambart <vincent.isambart@...>
Hello,
[#4448] add persistent history to irb — "David A. Black" <dblack@...>
Hi --
[#4453] bug in IRB with $_ matching a range of regexps — Ryan Davis <ryand-ruby@...>
> % ruby -v
[#4468] Re: Strange argc check in stable snapshot — "Berger, Daniel" <Daniel.Berger@...>
> -----Original Message-----
[#4475] Re: Strange argc check in stable snapshot — "Berger, Daniel" <Daniel.Berger@...>
> -----Original Message-----
[#4479] Requesting addition to IRB (configurable standard output) — Sascha Ebach <se@...>
Hello,
Quoting se@digitale-wertschoepfung.de, on Fri, Feb 25, 2005 at 01:22:34AM +0900:
On 24 Feb 2005, at 19:51, Sam Roberts wrote:
Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 02:43:31AM +0900:
On 25 Feb 2005, at 16:03, Sam Roberts wrote:
Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 10:24:52AM +0900:
On 25 Feb 2005, at 18:55, Sam Roberts wrote:
Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 03:49:49PM +0900:
[bug?] curses + threads = non-blocking getch
Hello experts,
Using the curses library, it looks like non-blocking getch (i.e. when
Ncurses.nodelay = 1) will block when there are other Threads running.
Once the other Thread dies, it resumes non-blocking operation, but only
once a key is pressed. With the ncurses library, this problem doesn't
happen.
I'm not a curses/ncurses expert, so maybe I'm doing something wrong.
Here's the code:
require "curses"
begin
Curses.init_screen
Curses.noecho
Curses.stdscr.nodelay = 1
start = Time.now
Thread.new { sleep 5; }
while true
Curses.stdscr.setpos(5, 5)
Curses.stdscr.addstr("#{(Time.now - start).round} waiting for input...")
Curses.refresh
x = Curses.stdscr.getch
Curses.stdscr.setpos(5, 5)
Curses.stdscr.addstr("#{(Time.now - start).round} got: #{x} ")
Curses.refresh
sleep 0.5
end
ensure
Curses.echo
Curses.close_screen
end
You'll see that getch blocks ("waiting for input" is displayed) until
after the first five seconds, when the thread dies. Then as soon as you
press a key, getch is back in non-blocking mode. If you remove the
Thread.new call, everything works as it should.
This is on ruby 1.8.2 (2005-01-10) [i386-linux].
For reference, here's the equivalent Ncurses code, which works fine:
require "ncurses"
begin
Ncurses.initscr
Ncurses.noecho
Ncurses.stdscr.nodelay true
start = Time.now
Thread.new { sleep 5; }
while true
Ncurses.stdscr.move(5, 5)
Ncurses.stdscr.addstr("#{(Time.now - start).round} waiting for input...")
Ncurses.refresh
x = Ncurses.stdscr.getch
Ncurses.stdscr.move(5, 5)
Ncurses.stdscr.addstr("#{(Time.now - start).round} got: #{x} ")
Ncurses.refresh
sleep 0.5
end
ensure
Ncurses.endwin
end
Is this a bug, or am I doing something wrong?
Thanks,
--
William <wmorgan-ruby-core@masanjin.net>