in reply to Re^2: WMI query with Threads
in thread WMI query with Threads
i am sorry if i am wrong about crash. the reason, i said perl crashed was because i got a message window
That is kind of important information to have omitted from your post.
The good news is that I have reproduced your problem and have a solution for you.
The culprit is Win32::OLE. Even this simple threaded code that uses that module in the main thread, fails in exactly the same when when you try to join a thread. Even if that thread makes no use of the module:
#! perl -slw use strict; use threads; use Win32::OLE qw[ in with ]; my $thread = async { sleep 3; }; $thread->join;
However, if you require Win32::OLE in the thread(s) where you want to use it, it works fine:
#! perl -slw use strict; use threads; #use Win32::OLE qw[ in with ]; my $thread = async { require Win32::OLE; Win32::OLE->import( qw[ in with ] ); sleep 3; }; $thread->join;
So the solution to your immediate problem is to comment out the use Win32::OLE line at the top of your program and replace it with the require and import as shown above in the top of your thread subroutine.
Try that and see how you get on.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^4: WMI query with Threads
by Corion (Patriarch) on Feb 14, 2013 at 07:54 UTC | |
by BrowserUk (Patriarch) on Feb 14, 2013 at 17:07 UTC | |
Re^4: WMI query with Threads
by vamsinm (Initiate) on Mar 04, 2013 at 14:44 UTC |