Re: Async processing issue within an event handler

[email protected] (James Lynes)
Newsgroups perl.wxperl.users
Message-ID <CABPysej8ZJU=kkWYwEOH=Gb8KPF3tv49PD4_0ZmVPcqRma0niw@mail.gmail.com>
Steve:

Thanks for the example code. I think I am doing something similar.

I have stub threads running along with my Wx code and I'm passing data and
flags via a shared Hash. Now I need to move the function code from the
event/timer handlers into the stubs. Probably another day or so of trial
and error and error and error... It's a good thing the compiler is fast and
it's not the old punch card days...

I'll post the code when it's working again.

Jim


On Sun, Sep 27, 2015 at 8:27 AM, Steve Cookson <[email protected]>
wrote:

> Hi James,
>
> On 24/09/15 18:13, James Lynes wrote:
>
>> Based on your comments I went and read the Perl Threads tutorial and
>> searched Perl Monks for Wx and Threads(very little there). Also no working
>> example on the wxPerl Wiki.
>>
>> I think Threads and Threads::Shared with lock() is the way to go. Now I
>> just have to go figure it out!
>>
> You'll still need wx::Timer to keep on checking the status of your threads.
>
> Here are some snippets from my code, $gl_media_thread_hsh is a global
> variable.  I hope you can make sense of it.  If you need more detail,
> please just ask.
>
> # import libraries
> use threads ();                                        # Used for
> multi-tasking ffmpeg
> use threads::shared;
>
> # Check operation
>
>             if ($value->is_running ne "1") {                    # Check
> status and if not executing:-
>                 my $result = $gl_media_thread_hsh->{$key}->join();
> #     - collect result.
>
>
>
> # Post next thread
>
>             $gl_media_thread_hsh->{$thread_no} = threads->new(
>                 sub {
>                     my $result = 0;
>                     $result = $next_job->execute() if -e
> $next_job->{input_file};            # trigger job in background.
>                     return $result;
>                 }
>             );
>             $i_queue->post_new_job($loc_hash_count_int);        #
> Increment next available thread.
>
> Regards
>
> Steve.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.