Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/lib/Local/TCP/Calc/Server.pm b/lib/Local/TCP/Calc/Server.pm
- index ff79376..6dd759d 100644
- --- a/lib/Local/TCP/Calc/Server.pm
- +++ b/lib/Local/TCP/Calc/Server.pm
- @@ -56,6 +56,8 @@ sub INT_HANDLER {
- exit(0);
- };
- +$SIG{TERM} = \&INT_HANDLER;
- +
- sub error_die {
- };
- @@ -96,6 +98,7 @@ sub start_server {
- # ---- Starting the worker manager's The Big Loop process
- elsif ($worker_manager_pid == 0) {
- Local::TCP::Calc::Server::WorkerManager->start($queue, $max_worker, $max_forks_per_task);
- + exit(0);
- }
- # --- Something went wrong, we cannot fork
- @@ -186,35 +189,14 @@ sub start_server {
- }
- else {
- -
- - # -- Creating child process which processing some work with error
- - $error_pid = fork();
- -
- - # --- Parent process part
- - if ($error_pid) {
- - $SIG{CHLD} = \&REAPER;
- - close($client);
- - next;
- - }
- -
- - # --- Child process part
- - elsif (defined $error_pid) {
- - sendm($client, TYPE_CONN_ERR, '0');
- - close($client);
- - exit(0);
- - }
- -
- - # ---Something goes wrong, we cannot fork
- - else {
- - close($client);
- - die "Can't fork: $!";
- - }
- -
- + sendm($client, TYPE_CONN_ERR, '0');
- + close($client);
- + next;
- }
- }
- }
- $socket->close();
- - print STDERR "Exit the server. Bye-bye!\n";
- + warn "Exit the server. Bye-bye!\n";
- kill('INT', $worker_manager_pid)
- };
- diff --git a/lib/Local/TCP/Calc/Server/Queue.pm b/lib/Local/TCP/Calc/Server/Queue.pm
- index 13c8066..9e4c432 100644
- --- a/lib/Local/TCP/Calc/Server/Queue.pm
- +++ b/lib/Local/TCP/Calc/Server/Queue.pm
- @@ -30,7 +30,6 @@ sub init {
- CORE::open($self->{f_handle}, '>>', $self->{queue_filename})
- or die "Can't initialize the queue file ".$self->{queue_filename}."\n";
- -
- $self->{f_handle}->print($self->{init_string});
- CORE::close($self->{f_handle});
- @@ -73,15 +72,12 @@ sub close {
- # print STDERR "File $self->{queue_filename} is: \n";
- # p %{$file_content};
- if ($open_type ne '<') {
- - # seek($self->{f_handle}, 0, 0);
- - CORE::open(my $fh, ">", $self->{queue_filename}."temp");
- -
- + seek($self->{f_handle}, 0, 0);
- + truncate($self->{f_handle},0);
- + my $fh = $self->{f_handle};
- $fh->print("$self->{init_string}\n"
- ."LAST_ADDED:$self->{last_added_id}\n");
- $fh->print("$_:$file_content->{$_}\n") foreach (keys %{$file_content});
- -
- - CORE::close($fh);
- - rename($self->{queue_filename}."temp", $self->{queue_filename});
- }
- flock($self->{f_handle}, LOCK_UN)
- or die "Can't unlock the queue file ".$self->{queue_filename}."\n";
- diff --git a/lib/Local/TCP/Calc/Server/Worker.pm b/lib/Local/TCP/Calc/Server/Worker.pm
- index 9263eb7..bf45392 100644
- --- a/lib/Local/TCP/Calc/Server/Worker.pm
- +++ b/lib/Local/TCP/Calc/Server/Worker.pm
- @@ -51,7 +51,7 @@ sub write_res {
- or die $self->{file_prefix}."result\n";
- flock($fh, LOCK_EX)
- or die $self->{file_prefix}."result\n";
- -
- + seek($fh, 0,2);
- print $fh "$task == $res\n";
- flock($fh, LOCK_UN)
- diff --git a/lib/Local/TCP/Calc/Server/WorkerManager.pm b/lib/Local/TCP/Calc/Server/WorkerManager.pm
- index 69c39ca..a6a13ae 100644
- --- a/lib/Local/TCP/Calc/Server/WorkerManager.pm
- +++ b/lib/Local/TCP/Calc/Server/WorkerManager.pm
- @@ -69,7 +69,6 @@ sub start {
- # --- Child process part
- elsif ($child == 0) {
- -
- my $worker = Local::TCP::Calc::Server::Worker->new(
- cur_task_id => $task_id,
- # calc_ref => \&func,
- diff --git a/lib/Local/TCP/Calc/SocketSubs.pm b/lib/Local/TCP/Calc/SocketSubs.pm
- index 1098dec..7c5d8e7 100644
- --- a/lib/Local/TCP/Calc/SocketSubs.pm
- +++ b/lib/Local/TCP/Calc/SocketSubs.pm
- @@ -81,8 +81,8 @@ sub receive {
- my $header_raw;
- my $header_ref;
- my $message_raw;
- -
- - if (sysread($socket, $header_raw, $HEADER_BYTES) != $HEADER_BYTES) {
- + my $readed = sysread($socket, $header_raw, $HEADER_BYTES);
- + if ($! or $readed != $HEADER_BYTES) {
- close_connect($socket, {ERROR => "Wrong header length while receiving, close connection...\n"});
- return $HEADER_ERROR;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement