Inifinite Loop on fork


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Inifinite Loop on fork
# 1  
Old 08-24-2010
Inifinite Loop on fork

I am trying to ping through a list of devices in parallel.
When the code below is executed, I enter a infinite loop.
I want to used the number of lines in the file as my boundry.

I am a perl rookie and just cant see whats wrong.
would appreciate help ...

Code:
use Net::Ping;
#
$filename = <@ARGV>;
open(CONT, $filename) or die "can't open $file: $!";
$bndry++ while <CONT>;
print $bndry;
close(CONT);
#
open(FILE, $filename) or die "can't open $file: $!";
while(<FILE>) {
 $ip = $_;
  chomp $ip;
  if (fork() == 0) {
$pingo = Net::Ping->new();
 if ($pingo->ping("$ip")) {print "Pinging $ip:\t Status:\tOk\n";}
 else {
     print ("Pinging $ip:\t Status:\tNot Ok\n");
 }
 $pingo->close();
    exit;
  }
  $children++;
 # if ($children >= $bndry) {
  if ($children >= 51) {
    wait();
    $children--;
  }
}
while ($children > 0) {
  wait();
  $children--;
}
exit 0;

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Fork!

I understand that fork create a child but I need very simple example that make child useful.... I mean how will make the program faster anyone explain with code plz using C plz (2 Replies)
Discussion started by: fwrlfo
2 Replies

2. UNIX for Dummies Questions & Answers

fork()

I'm trying to run a simple test on how to use fork(), i'm able to execute the child process first then the parent, but how can I execute parent then child..? Thanks! (1 Reply)
Discussion started by: l flipboi l
1 Replies

3. Programming

C Socket Client/Server Fork Loop

Hello people. I'm trying to do something like a search engine. Server runs in the background by using ./server & which has data from a textfile stored in an array. Client then runs by using ./client It will then prompt "Search for:" For example, if I searched for Products called Instant... (0 Replies)
Discussion started by: andylbh
0 Replies

4. Programming

IPC-using fork() in a loop

I need to write a program which creates some n number of processes first and also creates a fifo for each of them, then it connects to the server and.. I tried creating these processes with fork() in a for loop but it doesn't print out what i write inside the child.. for(int count = 0; count... (7 Replies)
Discussion started by: saman_glorious
7 Replies

5. Programming

fork() help

Hi everybody, I wanna write a code to understand how fork works. my target -------------- -Parent creates a file(called temp) and writes into this file "1".Then it closes the file. -Then parent creates a child and wait until execution of this child ends. -Then child opens the same... (3 Replies)
Discussion started by: alexicopax
3 Replies

6. Programming

Fork ()

hi all About this code for (i = 1; i < n; i++) if ((childpid = fork()) <= 0) break; I really can't understand the output . and the way fork () return the value . how about the process Id ,the child process Id and the parent ID in this case so please answer me soon (5 Replies)
Discussion started by: iwbasts
5 Replies

7. Programming

fork() in for loop

hello, Every time i use fork() in the for loop, my college network(which i work in) either gets slow or hangs up.Can any 1 explain why it is so? Of course there is no use of doing it though. But still i want to clear my doubt. Thanks (2 Replies)
Discussion started by: cyno
2 Replies

8. Programming

fork() fd

I run this code, actually I want to both processes print the message from "data". But only one does. What happens? Anyone can help? #include <stdio.h> main(){ int fd, pid; char x; fd = open("data",0); /* open file "data" */ pid = fork(); if(pid != 0){ wait(0); ... (2 Replies)
Discussion started by: Herman
2 Replies

9. Shell Programming and Scripting

Endless loop - Fork function failed?

I need a quick script that will serve as a sort of "real time monitor" for watching some log files. I am using Bourne shell in HP-UX 10.20. I have basically created a script that never ends, unless of course I manually terminate it. Here's the script (it's called qhistory): clear echo "REAL... (3 Replies)
Discussion started by: cdunavent
3 Replies

10. UNIX for Dummies Questions & Answers

Fork

What is a fork? Why would one create a fork? What are the advantages and disadvantages of using a fork? Please advise. Thank You. Deepali (5 Replies)
Discussion started by: Deepali
5 Replies
Login or Register to Ask a Question
IO::Async::Loop::Select(3pm)				User Contributed Perl Documentation			      IO::Async::Loop::Select(3pm)

NAME
"IO::Async::Loop::Select" - use "IO::Async" with "select(2)" SYNOPSIS
Normally an instance of this class would not be directly constructed by a program. It may however, be useful for runinng IO::Async with an existing program already using a "select" call. use IO::Async::Loop::Select; my $loop = IO::Async::Loop::Select->new; $loop->add( ... ); while(1) { my ( $rvec, $wvec, $evec ) = ('') x 3; my $timeout; $loop->pre_select( $rvec, $wvec, $evec, $timeout ); ... my $ret = select( $rvec, $wvec, $evec, $timeout ); ... $loop->post_select( $rvec, $evec, $wvec ); } DESCRIPTION
This subclass of "IO::Async::Loop" uses the select(2) syscall to perform read-ready and write-ready tests. To integrate with an existing "select"-based event loop, a pair of methods "pre_select" and "post_select" can be called immediately before and after a "select" call. The relevant bits in the read-ready, write-ready and exceptional-state bitvectors are set by the "pre_select" method, and tested by the "post_select" method to pick which event callbacks to invoke. CONSTRUCTOR
$loop = IO::Async::Loop::Select->new This function returns a new instance of a "IO::Async::Loop::Select" object. It takes no special arguments. METHODS
$loop->pre_select( $readvec, $writevec, $exceptvec, $timeout ) This method prepares the bitvectors for a "select" call, setting the bits that the Loop is interested in. It will also adjust the $timeout value if appropriate, reducing it if the next event timeout the Loop requires is sooner than the current value. $readvec $writevec $exceptvec Scalar references to the reading, writing and exception bitvectors $timeout Scalar reference to the timeout value $loop->post_select( $readvec, $writevec, $exceptvec ) This method checks the returned bitvectors from a "select" call, and calls any of the callbacks that are appropriate. $readvec $writevec $exceptvec Scalars containing the read-ready, write-ready and exception bitvectors $count = $loop->loop_once( $timeout ) This method calls the "pre_select" method to prepare the bitvectors for a "select" syscall, performs it, then calls "post_select" to process the result. It returns the total number of callbacks invoked by the "post_select" method, or "undef" if the underlying select(2) syscall returned an error. SEE ALSO
o IO::Select - OO interface to select system call AUTHOR
Paul Evans <leonerd@leonerd.org.uk> perl v5.14.2 2012-10-24 IO::Async::Loop::Select(3pm)