Sorry, no idea why those e-mails never got through, without a bounce;
I just noticed it now. As an update, I just release wxPerl 0.91
which should fix all remaining threading problems.
Regards,
Mattia
--- Begin Message ---
Steffen Mueller wrote:
Hi,
there have been occasional bad crashes of an application in whose
development I'm involved in (Padre). With your generous help, I managed
to build a debugging perl+wxWidgets+Wx combination and finally obtained
a backtraces for such crashes. I always suspected a combination of
ithreads with wx to be the culprit and unfortunately, it turns out I was
right. It seems to happen only when a background thread is joined.
Specifically during the resulting cleanup.
This alone is a good indication the following speculation is correct.
I'm wildly speculating now:
Maybe some of the Wx objects with underlying non-ithread-aware C++
implementation are being cloned on thread creation and dubiously freed
on thread exit. Or maybe it's due to Thaw being called on a window that
wasn't Freeze'd (see backtrace).
Since wxWUL has a destructor, the following typemap confirms the
analysis above:
wxWindowUpdateLocker * O_NON_WXOBJECT
for an object with a Perl-level DESTROY method this needs to be
O_NON_WXOBJECT_THR (and some other changes). You can look at
mbar...@madhatter ~/devel/wxPerl/wxPerl $ svn log -r 2515
------------------------------------------------------------------------
r2515 | mbarbon | 2008-11-30 12:14:49 +0100(Dom, 30 Nov 2008) | 2 lines
Fix crash at thread join reported by Steffen Mueller.
------------------------------------------------------------------------
for an example, if you are interested. I will try to make the fix later
today (currently at PyCon, will have to wait for an uninteresting talk
:-)
You can find an example backtrace with some additional debugging info here:
http://padre.perlide.org/attachment/ticket/287/backtrace
I'm unsure how to proceed with debugging these issues. I'm out of my
depth, unfortunately, and would really appreciate any help.
After looking at the typemap, I do not think you need to perform
any more debugging. It should be easily reproducible in the test
suite.
Does anyone have any pointers on how I should go about finding the cause
of this? Could you help if I provided more info? Right now, I'm able to
conveniently reproduce that crash. I will try not to recompile or
overwrite any part of the setup for a while in order to keep it that
way. Please help.
Thanks!
Mattia
--- End Message ---
--- Begin Message ---
Steffen Mueller wrote:
Hi again,
there have been occasional bad crashes of an application in whose
development I'm involved in (Padre).
should be fixed in revision 2554.
Regards,
Mattia
P.S.: I noticed there are some more instances of 'thread KO' in
wxPerl sources. I will fix all of them for next release and
perform another review for thread problems.
--- End Message ---