struct sigaction sa;
sa.sa_flags = SA_RESTART;

というように、シグナルのフラグとしてSA_RESTARTというのがあります。

私の理解では、「SA_RESTARTを設定している場合、recv()などの実行文においてシグナルを受けてもrecv()から抜け出さず、受けたシグナルの処理する」という理解です。

実際のソフトを作る場合、SA_RESTARTは設定する/しない、どちらでよく使われるものでしょうか?

SA_RESTARTを設定していると、意図しないrecv()からの抜け出しがなくなりよさそうに思うのですが、そうなのでしょうか?