Of course, I tested my code before I post it. Before you question whether I tested my code, you better try my code out first. Everyone should only speak base on facts, not guesses.
Your threaded code does not work, does not imply all threaded code do not work.
But I will be happy to look into your code, and see why it is stuck. I will do this now.
Still looking at your code... First your code exited right after I started it. Reason? simple, because after it created two child threads, your main thread just print "bye" and exit. How did you test your code? I will add joins before bye.
...
Okay, tested your code. It died on you? Sorry it worked for me, after added:
threads::join($thra);
threads::join($thrb);
Couple of things about your code:
- You use $BUFFER without check whether it is undef, that causes lots of warning, when you do length($BUFFER) etc.
- You better lock your shared variables before update them, although in your context, this not that serious a problem