Victor 'Zverok' Shepelev
11/6/2006 10:16:00 AM
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.