程序运行一段时间报Bad file descriptor,出错的根源在哪里?

程序运行一段时间报Bad file descriptor,出错的根源在哪里?

昨天在windows 2003上跑的一段perl程序接收其它机器发送过来的数据
今天早上来一看,程序退出了,报的错误是:Bad file descriptor,出错行是下面红色那一行
这个错误的根源在哪里?是thread还是超出socket最大数了?
麻烦有经验的大虾指点一下

while (my ($new_sock) = $sock->accept())
        {
                my ($threads);
                $threads = threads->create('process_data', $new_sock) || die "Threads error $!";
                close ($new_sock);   
        }
close ($sock);
呼呼~~很不错~~顶起~~~~~
我怎么感觉应该用or而不是用||呢
or和||优先级不一样的

[Copy to clipboard] [ - ]
CODE:
  $threads = threads->create('process_data', $new_sock) or  die "Threads error $!";

还有以前看书的时候说是thread本身就有很多毛病,在windows上毛病就更多了
所以还是用fork和exec,人肉写thread吧


QUOTE:
原帖由 churchmice 于 2008-6-3 12:30 发表
我怎么感觉应该用or而不是用||呢
or和||优先级不一样的

  $threads = threads->create('process_data', $new_sock) or  die "Threads error $!";

还有以前看书的时候说是thread本身就有很多毛病,在wind ...

非常感谢
我再试试