簡體   English   中英

信號處理程序代碼會阻塞主進程嗎?

[英]does signal handler code block the main process?

我正在按以下方式注冊警報信號處理程序,並且每秒設置一個警報信號。

  sigact.sa_handler = time_handler;
  sigemptyset(&sigact.sa_mask);
  sigact.sa_flags = SA_RESTART;
  if (sigaction(SIGALRM, &sigact, NULL) < 0)
      panic("sigaction SIGALRM: %s\n", strerror(errno));

  /* Set alarm signal every second */
  alarm(1);

我的問題是函數time_handler遵循單獨的執行路徑(如線程)還是阻塞了主進程。

您可以通過在回調中添加sleep()來查看是否正在使用GNU C,然后查看之后的代碼是否延遲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM