exec (&result, file_name, &parameters),          data_source_exists (pulong -&w bytes_exists, hsocket socket, int process_id)
{                                                {
  parameters = {                                   *bytes_exists = (socket->is_empty ()) ? 0 : 1; return (*bytes_exists | process_id->process_exists ()) ? 1 : 0;
                 flags : EXEC_ASYNC_RC,          }  
                 std : {                           
                         out : STD_IN,           
                         err : STD_ERR
                       }
               }
};

while (data_source_exists (&bytes_exists, STD_IN, result.process_id))
{
  if (bytes_exists)
  {
    fp (string.chars, string.length),
    {
      string >STR_MAX_LINE< = read_line (&_, -_, STD_IN)
    };
  }
  else
  {
    sys_wait (std_in, -_, SW_REDIRECT),
    { 
      std_in[] = {
                   { input : STD_IN, p_id : result.process_id }
                 }
    };
  }
},
{
  ulong bytes_exists = 0
};