Thank you for your prompt response, Mark. I do use Wx::Perl::Packager, and it is a great help. Without the benefit of this module, I would not be able to use WxPerl as a production library--the effort involved in producing compiled packages would too great. It is an incredibly useful module, thank you also for the time you've put into developing and maintaining it.

I guess I wasn't clear enough in my problem description. The 'rmtree' error sometimes shows up when a program crashes or dies due to missing libraries, and Wx::Perl::Packager would be exactly the right tool to use to address the issue. This isn't what's happening in this case. The packages get built and run properly, its just that they fail to clean up after themselves on shutdown.

After I've built the package, when I click 'Test it' to run my application, my app runs normally and without any problems. When I exit the program, perlapp shows the 'rmtree failed' error. When I look in the temp directory, I find the scratch directory PerlApp created to cache needed files in. It invariably contains the same set of dlls:
a25e484f72ddea79baa955627d488a39.dll
mingwm10.dll
perl58.dll
wxbase28u_gcc_wxperl.dll
wxmsw28u_adv_gcc_wxperl.dll
wxmsw28u_core_gcc_wxperl.dll

When the app is running, the following dlls are present:
0858f617e1b241374d9f120bb26fb7b8.dll
0a57d12a652a9aa8a9a0b50b63eacf69.dll
0a5e4c87fa5c54c914abae722e8df846.dll
106d5d75037d32173224d1fcc756ac31.dll
1823e8f62785746fd29cf0b06c636600.dll
27c8e6827f78ba1831292105bb4b6e19.dll
40264fde9f2a92019910d137c9cc247d.dll
407508194147155aad116bbb9932f700.dll
465d2954d90fe6225ea61b3907c91da8.dll
5304c9fae7d015d0af26a6a68bdda3c7.dll
541cd9bc8060027290e90d3e07d19dcb.dll
690d4dd022c4e68f9fdfa754e2bcc404.dll
6c16bd625d9658445cc3dcebf15967ba.dll
8093d6335a3324a2d1afe442c6f3c959.dll
9d97b746759aac7b9b0fe180387eda8b.dll
a07d047c3b9dd390896ae265d899a29b.dll
a0cfb70acbca692b4e0caad1fdfc6c02.dll
a25e484f72ddea79baa955627d488a39.dll
ae04e4f42bab17aaf801b5d019ab471e.dll
ae4c340263b2b4ae26334d8b3c9333dd.dll
b0336f6abf3221f016118aeb84850b97.dll
dc2e187d3b818b8feb5b041e4d3d9fb2.dll
ddbdeb1a290b56117ad8fa58dd1134d5.dll
ead249fbab5879aea60a50b9bd09d33d.dll
f1aaa747ef35cd9d7cd122638684172e.dll
f973edd0dd2693cdbb3dd630590f1d16.dll
mingwm10.dll
perl58.dll
wxbase28u_gcc_wxperl.dll
wxbase28u_net_gcc_wxperl.dll
wxbase28u_xml_gcc_wxperl.dll
wxmsw28u_adv_gcc_wxperl.dll
wxmsw28u_aui_gcc_wxperl.dll
wxmsw28u_core_gcc_wxperl.dll
wxmsw28u_gl_gcc_wxperl.dll
wxmsw28u_html_gcc_wxperl.dll
wxmsw28u_media_gcc_wxperl.dll
wxmsw28u_qa_gcc_wxperl.dll
wxmsw28u_richtext_gcc_wxperl.dll
wxmsw28u_stc_gcc_wxperl.dll
wxmsw28u_xrc_gcc_wxperl.dll

So far I have one app that exhibits this behavior, that I can't share due to proprietary blah blah, and no clue how to even start producing a minimal, sharable test case. I exit my program by calling Close() on the (only) main window, just like I do in my other wx applications, but for some reason with this app, I get the error.

I see I neglected to mention that I am using Alien::Wx::Widgets 0.32.42.5, Wx 0.79.42.6, and Wx::Perl::Packager 0.10 with Perl 5.8.8, build 819.

I'd appreciate any thoughts anyone has.

Thanks again,

--Mark Swayne

Mark Dootson wrote:
Hi,

Try using module 'Wx::Perl::Packager'

This should solve any problems you have with PerlApp.

Regards

Mark

Mark Swayne wrote:
I'm having problems with a bound application I wrote using wxperl with
perlapp.  When I run my program through perlapp's "Test it" interface, I
get the error message "rmtree failed because directory is not empty."

When I check the temporary directory perlapp uses to cache its unpacked
file ins, I can see the wx dlls have not been deleted.  I gather that
this is happening because the wx dlls can't be deleted, because they
haven't been unloaded from memory yet.
Since this only happens with some of my perlapp projects, I have reason
to hope that there is something I can do when I exit my script that will
help signal the OS that I am done with the dlls and they can be unloaded.

Does anyone have any suggestions?

Thanks,

--Mark Swayne





Reply via email to