If another freeze happens before all tasks leave FROZEN state afterbeing thawed, the freezer can see the existing FROZEN and consider thetasks to be frozen but they can clear FROZEN without checking the newfreezing().

Oleg suggested restructuring __refrigerator() such that there's singlecondition check section inside freezer_lock and sigpending is clearedafterwards, which fixes the problem and simplifies the code.Restructure accordingly.