added semaphore and shared memory to print without superposition between parent and child process
This commit is contained in:
@@ -9,7 +9,7 @@ void Webserv::_close_client(int fd)
|
||||
{
|
||||
if (*it == fd)
|
||||
{
|
||||
std::cout << family << "| (" << std::setw(2) << it->get_cl_fd() << ") close client fd " << fd << std::endl;
|
||||
print_secure(it->get_cl_fd(), "close client fd " + ::itos(fd) + "\n");
|
||||
if (::close(fd) == -1)
|
||||
std::perror("err close()");
|
||||
_close_client_cgi_pipes(&(*it));
|
||||
@@ -24,25 +24,25 @@ void Webserv::_close_client_cgi_pipes(Client *client)
|
||||
{
|
||||
if (client->cgi_state)
|
||||
{ // No need to reset the fd to -1 normaly
|
||||
std::cerr << family << "| (" << std::setw(2) << client->get_cl_fd() << ") close pipe wtc [" << client->cgi_pipe_w_to_child << "]\n";
|
||||
print_secure(client->get_cl_fd(), "close pipe wtc [" + ::itos(client->cgi_pipe_w_to_child) + "]\n");
|
||||
if (client->cgi_pipe_w_to_child != -1)
|
||||
if (::close(client->cgi_pipe_w_to_child) == -1)
|
||||
std::perror("err close()");
|
||||
client->cgi_pipe_w_to_child = -1;
|
||||
|
||||
std::cerr << family << "| (" << std::setw(2) << client->get_cl_fd() << ") close pipe rfc [" << client->cgi_pipe_r_from_child << "]\n";
|
||||
print_secure(client->get_cl_fd(), "close pipe rfc [" + ::itos(client->cgi_pipe_r_from_child) + "]\n");
|
||||
if (client->cgi_pipe_r_from_child != -1)
|
||||
if (::close(client->cgi_pipe_r_from_child) == -1)
|
||||
std::perror("err close()");
|
||||
client->cgi_pipe_r_from_child = -1;
|
||||
|
||||
std::cerr << family << "| (" << std::setw(2) << client->get_cl_fd() << ") close pipe wtp [" << client->cgi_pipe_w_to_parent << "]\n";
|
||||
print_secure(client->get_cl_fd(), "close pipe wtp [" + ::itos(client->cgi_pipe_w_to_parent) + "]\n");
|
||||
if (client->cgi_pipe_w_to_parent != -1)
|
||||
if (::close(client->cgi_pipe_w_to_parent) == -1)
|
||||
std::perror("err close()");
|
||||
client->cgi_pipe_w_to_parent = -1;
|
||||
|
||||
std::cerr << family << "| (" << std::setw(2) << client->get_cl_fd() << ") close pipe rfp [" << client->cgi_pipe_r_from_parent << "]\n";
|
||||
print_secure(client->get_cl_fd(), "close pipe rfp [" + ::itos(client->cgi_pipe_r_from_parent) + "]\n");
|
||||
if (client->cgi_pipe_r_from_parent != -1)
|
||||
if (::close(client->cgi_pipe_r_from_parent) == -1)
|
||||
std::perror("err close()");
|
||||
@@ -63,7 +63,7 @@ void Webserv::_close_all_clients_fd()
|
||||
std::vector<Client>::iterator it_end = _clients.end();
|
||||
while (it != it_end)
|
||||
{
|
||||
std::cout << family << "| (" << std::setw(2) << it->get_cl_fd() << ") close client fd " << it->get_cl_fd() << std::endl;
|
||||
print_secure(it->get_cl_fd(), "close client fd " + ::itos(it->get_cl_fd()) + "\n");
|
||||
if (::close(it->get_cl_fd()) == -1)
|
||||
std::perror("err close()");
|
||||
++it;
|
||||
|
||||
Reference in New Issue
Block a user