Prechádzať zdrojové kódy

Fix race condittion with logging

yhirose 1 mesiac pred
rodič
commit
e068da4f6b
1 zmenil súbory, kde vykonal 4 pridanie a 3 odobranie
  1. 4 3
      httplib.h

+ 4 - 3
httplib.h

@@ -10726,6 +10726,10 @@ inline bool Server::write_response_core(Stream &strm, bool close_connection,
     bstrm.write(res.body.data(), res.body.size());
   }
 
+  // Log before writing to avoid race condition with client-side code that
+  // accesses logger-captured data immediately after receiving the response.
+  output_log(req, res);
+
   // Flush buffer
   auto &data = bstrm.get_buffer();
   if (!detail::write_data(strm, data.data(), data.size())) { return false; }
@@ -10740,9 +10744,6 @@ inline bool Server::write_response_core(Stream &strm, bool close_connection,
     }
   }
 
-  // Log
-  output_log(req, res);
-
   return ret;
 }