in reply to join() in perl threads does not return

Don't do the threads->exit, just fall off the end.

But corion is correct. If you are just after an asynchronous process, $pid = system( 1, ... ) or Win32::Spawn( ... ) is the way to go.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
join() in perl threads does not return
by Mj1234 (Sexton) on Oct 03, 2016 at 06:08 UTC
    I tried without thread->kill() but still the joining of threads just freezes without returning.

      Hm. In that case you'll need to post actual code, that is runnable and demonstrates the problem.

      • Actual code:

        Ie. This code: $gdbserver_path :6000 $Exe_path 1> NUL 2> NUL` ; from your OP, is not valid Perl.

        1. There is an unmatched backtick (`) at the end of the line, but none at the start.
        2. Whilst not illegal, a command line parameter that starts ':' is unusual.
        3. You are redirecting both stdout and stderr to nul, then what is the point of backticks? (They are designed to return the output of the spawned program to the spawner.)
        4. Ditto: Why use backticks (rather than system) if you aren't going to assign the output to a variable and use it?
      • Runnable: means that we will have a good chance of running the code you post.

        Ie. It mustn't have dependencies that we cannot have access to -- like modules that are your companies intellectual property.

        We don't need to have the executable you are running, we can mock that up using a perl 1-liner.

      • demonstrates the problem: hopefully, self explanatory.

      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
      In the absence of evidence, opinion is indistinguishable from prejudice.
        Ya there is a backtick at the beginning as well. Must have been left out while copying