While you have told us what you have "done", you have neglected to tell us what has then happened.
have you seen that the script progresses past # Here the script and server will exchange information few times ? What happens inside dosomething() and dosomething2(); There are people that will tell you not to use &sub to call a subroutine because of what happens to the parms list but i am sortof concerned that neither has any parms that you supply. i would expect then that they would start with something like my $buf; my $rv = sysread($net, $buf, 64*1024, length($buf)); and my $buf; my $rv = sysread($server, $buf, 64*1024, length($buf)); Since i dont see any use warnings; use strict; i expect you are assuming that $net and $server are globals and are available to those subs
also after the $rv=sysread you should have some sort of test like
if (!$rv) { if (defined($rv)) { # eof state, remove from io::select; } else { # error state, remove from io::select; } } else { # process $buf; }
I should also point out that 0.05 is rather short for the timeout, since can_read will block until it has something you can read. with the very short timeout while(1) will loop with nothing to do a LOT
In reply to Re: websocket infinit loop
by huck
in thread websocket infinit loop
by matematiko
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |