HomeFreeBSD

Refactor sleepq_catch_signals().

Description

Refactor sleepq_catch_signals().

  • Extract suspension check into sig_ast_checksusp() helper.
  • Extract signal check and calculation of the interruption errno into sig_ast_needsigchk() helper.

The helpers are moved to kern_sig.c which is the proper place for
signal-related code.

Improve control flow in sleepq_catch_signals(), to handle ret == 0
(can sleep) and ret != 0 (interrupted) only once, by separating
checking code into sleepq_check_ast_sq_locked(), which return value is
interpreted at single location.

Reviewed by: markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D26628

Details

Provenance
kibAuthored on Oct 4 2020, 4:30 PM
Parents
rG9f2d6263bbde: Use __func__ instead of __FUNCTION__ for consistency.
Branches
Unknown
Tags
Unknown

Event Timeline