)]}'
{
  "commit": "e2dc1e1ee272ed47790f01d78971bb90fa0dc628",
  "tree": "4666f026994bd4420d5936353d93425b6be2d866",
  "parents": [
    "f848316c62dfd751dde60ced86d6159233dd6ee3"
  ],
  "author": {
    "name": "Jacob Keller",
    "email": "jacob.e.keller@intel.com",
    "time": "Thu Sep 05 11:42:13 2024 -0700"
  },
  "committer": {
    "name": "Richard Cochran",
    "email": "richardcochran@gmail.com",
    "time": "Thu Sep 05 21:09:42 2024 -0700"
  },
  "message": "ts2phc: check is_running in ts2phc_pps_sink_poll()\n\nA recent bug in the ts2phc_pps_sink_poll() function caused the ts2phc\nprogram to fail to exit in response to the SIGINT, SIGQUIT, SIGTERM, and\nSIGHUP signals.\n\nIn normal behavior, these signals are caught by the handle_int_quit_term()\nfunction, which sets the global running variable to 0. This causes the main\nloop of the ts2phc main function to terminate and the program will clean up\nand then quit.\n\nHowever, if the ts2phc_pps_sink_poll() function does not exit -- as in the\nbuggy situation previously mentioned -- then the ts2phc application will\nnot exit.\n\nAdditional error checking was added to ts2phc_pps_sink_poll() to prevent it\nfrom continuing when a clock device fails to poll. However, the\napplication may still take some time to finish polling while waiting for\nevents on all of the sink clocks.\n\nIf the user has issued a signal, there is no reason to continue polling,\nand the application ought to stop immediately. In practice, if the signal\narrives while the poll() system call is running, it will exit and set errno\nto EINTR. This normally causes the function to exit with a return of 0.\nHowever, if the signal arrives at another point, the function will continue\npolling until its normal exit condition. This could take some time,\npreventing the program from exiting quickly.\n\nAdd a check against is_running() to the loop body, so that the ts2phc\nprogram will exit efficiently upon being signaled.\n\nSigned-off-by: Jacob Keller \u003cjacob.e.keller@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0ba454de706bec28234b5808699764dec17d5c7a",
      "old_mode": 33188,
      "old_path": "ts2phc_pps_sink.c",
      "new_id": "af34e39f09c9f03c6ba0186ede8bc0ab5ce7d830",
      "new_mode": 33188,
      "new_path": "ts2phc_pps_sink.c"
    }
  ]
}
