Problem with forking


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with forking
# 1  
Old 04-21-2009
Problem with forking

Hi,


Code:
my $log = IO::File->new(">$log_file_name");
$log->print("date()."--\n\n\n");
sub process {
  my ($sub_dir, $file, $config, $log) = @_;
  $log->print("-- Reading $file file\n");
}

Code:
 my $pm = new Parallel::ForkManager($tc+1);
    $pm->run_on_finish( sub { my ($pid, $exit_code, $ident) = @_; $tmpFiles[$ident] = undef; } );
 foreach my $i (0..$#tmp) {
      # Forks and returns the pid for the child:
      my $pid = $pm->start($i) and next;
      $SIG{INT} = 'DEFAULT';
      my $filename = $tmp[$i]->filename();
      my $file = IO::File->new("<$filename") or die "Can't open $filename\n";
      while((my $line) = $file->getline()) {
        last unless defined($line);
        chomp $line;
        my ($dir, $file) = split(/\t/, $line);
        #  my $process = shift; is created above 
# Calling this from another file
        $process->($dir, $file, $config, $log);
      }
      $pm->finish; # Terminates the child process
    }

Here 5 process is created and subroutine is called from another file which opens a log file write. <br>
$process->($dir, $file, $config, $log);
The problem is while writing to the file some of the data is missed out because it is not synchronized.

How can I synchronize all the forked process to write to same log file or create a different log file for each.
or How can I create a threading process as the replacement for forking process

Thanks in advance.
# 2  
Old 04-22-2009
Please help me with this..
How can I synchronize process to write to single log file or
How to create a separate log file for each process.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

need help in forking

I have an input file with contents like: 5785690|68690|898809 7960789|89709|789789 7669900|87865|659708 7869098|65769|347658 so on.. I need to pass this file to 10 parallely running processes (forking)so that each line is processed by a process and no line is processed twice and write the... (1 Reply)
Discussion started by: rkrish
1 Replies

2. Programming

Parent forking

My question is, how do you fork only the parent processes in unix? For example how would I use the fork function to fork the parent process more than once and leave the children processes alone. This way I do not have children of children. The way I have it set up now it the parent process forks 3... (7 Replies)
Discussion started by: TWhitt24
7 Replies

3. Shell Programming and Scripting

Forking and Pinging

Keep in mind that I haven't done Perl scripting for a LONG time, so I'm quite rusty. This is what I would like to do: - using fork, create 3 or 4 processes to read 3 or 4 different text documents containing server names or IP addresses - in each of those processes, Perl will ping each of those... (7 Replies)
Discussion started by: kooshi
7 Replies

4. Programming

Forking in Unix using C++

i wanna ask about forking in unix...how can you do forking...??i don't understand and i have an assignment about it...the output should look like this... Question 1 : what's your name ? Answer : if no answer, write to file...----Out of time-----because for each question it is given a... (3 Replies)
Discussion started by: kkk02
3 Replies

5. Shell Programming and Scripting

Forking with Tclsh vs Wish

Hello, I am new to this site, so sorry ahead of time if this is not the right place for this question.......anywhooooo I am having troubles with forking new processes in wish. Take the following code example: **************************** package require Tclx puts "TCL VER: " proc... (3 Replies)
Discussion started by: pghamami
3 Replies

6. Programming

forking within a thread

Is it safe to call fork+exec in a multithreaded application. Because In my multithreaded application, I need to execute another program in each thread. I am using solaris 10. Any suggestions pls. (2 Replies)
Discussion started by: axes
2 Replies

7. Programming

forking process.

#include <stdio.h> #include <sys/types.h> #include <unistd.h> int main() { pid_t pID; int i; for (i = 0; i < 3; i++) { pID = fork (); if (pID == 0) { printf ("Value of i --> %d... (2 Replies)
Discussion started by: kymthasneem
2 Replies

8. Programming

forking a new process

Hi I'm currently working with C on UNIX (HPUX) and need to be able to fork a seperate Java process from within a running C process. I can run the following code from the command line via a script but am having difficulty getting it to work from within the code. I am trying to use execl. Is... (4 Replies)
Discussion started by: themezzaman
4 Replies

9. UNIX for Advanced & Expert Users

Forking

When I compile this C programme I get different outputs each time I run it Please explain to me whats happening in the code if you can give me a detailed explanation with the schedular functionality it will help a lot. Because I am stuck with this. #include <stdio.h> main(){... (3 Replies)
Discussion started by: manjuWicky
3 Replies

10. Programming

Forking in a loop

When I compile this C programme I get different outputs each time I run it Please explain to me whats happening in the code if you can give me a detailed explanation. Because I am stuck with this. #include <stdio.h> main(){ int i = 0; printf("I am the... (1 Reply)
Discussion started by: manjuWicky
1 Replies
Login or Register to Ask a Question