From: Yukihiro Matsumoto [mailto:matz / ruby-lang.org]
Sent: Monday, November 06, 2006 10:46 AM
>In message "Re: Problem with Thread's memory (possible bug)"
>    on Mon, 6 Nov 2006 04:02:55 +0900, "Victor \"Zverok\" Shepelev"
><vshepelev / imho.com.ua> writes:
>
>|First of all: Windows XP with ruby1.9, RUBY_PLATFORM = i386-mswin32_71
>|
>|I have a window, and dispatch all keyboard events to Ruby's block.
>|All works good, except Ruby's Threads. When I do anything like just
>|Thread.new{} in my keyboard handling block, I have corrupted memory and
>|entire program crashed soon.
>|
>|How can I debug (or just walk around) this problem?
>
>First, mere 1.9 does not mean anything.  Specify the date.
>Full ruby -v line is better.

Sorry :(
There was words "today's version" in my platform description, but I've
deleted them before send message.
It was Ruby1.9-today, downloaded yesterday.

ruby 1.9.0 (2006-11-04) [i386-mswin32_71]

>Besides that, is it possible to supply error reproducing code?

Possible, but not very useful, as there is custom UI library used.
Here is it:

-----
require 'lib/config'

require 'htmr'
require 'htmr/load'
require 'htmr/extend'
require 'htmr/events'

MAIN_HTMR = File.join(HTMR_PATH, 'nanobrowser.htmr')

win = Htmr::Window.create_from_file(MAIN_HTMR, 'NanoBrowser')

Htmr::App::main_window = win

include Htmr::Keys
win.get('#url').on_key_down(ENTER) do
    Thread.new{}  #HERE's thread usage!
end

win.show

Htmr::App::run
-----

inside 'lib/config' there is:
-----
$:.unshift File.expand_path(File.dirname(__FILE__))
$:.unshift File.expand_path(File.join(File.dirname(__FILE__), "vendors"))
require 'vendors'

DLL_PATH = File.expand_path(File.join(File.dirname(__FILE__), '..', 'bin'))

ENV['PATH'] += ";" + DLL_PATH

HTMR_PATH = File.join(File.expand_path(File.dirname(__FILE__)), '..',
'htmr')
-----

All htmr/* files is UI library.

If I'll comment "HERE's thread" line, all works fine. I use my library till
last 2 month inside rather complicated software, and there was almost no
problems.

Thanks.

V.