1. <?php
  2. /**
  3. * Teardown function for experiment cleanup.
  4. * Performs defensive checks to prevent errors.
  5. */
  6. function teardownExperiment() {
  7. // Defensive check: Ensure the environment variables exist before attempting to unset them.
  8. if (isset($_SERVER['TMP'])) {
  9. unset($_SERVER['TMP']);
  10. //echo "Unset TMP environment variable.\n"; // Debugging - remove in production
  11. }
  12. if (isset($_SERVER['TEMP'])) {
  13. unset($_SERVER['TEMP']);
  14. //echo "Unset TEMP environment variable.\n"; // Debugging - remove in production
  15. }
  16. // Defensive check: Ensure the directory exists before attempting to remove it.
  17. $tempDir = sys_get_temp_dir();
  18. if ($tempDir) {
  19. if (is_dir($tempDir)) {
  20. if (rmdir($tempDir)) {
  21. //echo "Removed temporary directory: " . $tempDir . "\n"; // Debugging - remove in production
  22. } else {
  23. error_log("Error removing temporary directory: " . $tempDir);
  24. }
  25. }
  26. }
  27. // Defensive check: Attempt to kill any lingering processes. This is a best-effort approach.
  28. $pid = proc_close(null); // Kill all processes
  29. if ($pid !== false) {
  30. //echo "Killed processes.\n"; // Debugging - remove in production
  31. } else {
  32. error_log("Error killing processes.");
  33. }
  34. // Defensive check: Ensure the log file exists before trying to remove it.
  35. $logFile = 'experiment.log'; // Or use a dynamically generated path
  36. if (file_exists($logFile)) {
  37. if (unlink($logFile)) {
  38. //echo "Removed log file: " . $logFile . "\n"; // Debugging - remove in production
  39. } else {
  40. error_log("Error removing log file: " . $logFile);
  41. }
  42. }
  43. }
  44. ?>

Add your comment