Check Before Adding
Before adding anything, lay out one order in which everything, the addition included, can finish; if none exists, refuse; the first refusal is the operation working.
Formerly Extend
The host seats a new guest only if there will still be a chair for everyone.
Seen in Paul Preece, Desktop Tower Defense, browser game, 3 March 2007
Try it on your work
Before adding any new part to the thing you're working on, lay out one order in which everything, including the new part, can be finished with what you have. If no such order exists, refuse the part. Stop when you have refused once; that refusal is the operation working.
Before adding a claim to your project, check that there remains one sequence in which every claim, including the new one, can be substantiated. Stop when the check fails once and you leave the claim out.
Before accepting any new task into a period, find one schedule that completes every task already in it plus the new one. If none, decline. Stop at the first decline. The period is now safe by construction, not by hope.
How it has been used
The Banker’s algorithm avoids deadlock by asking whether a requested allocation would leave the system in a “safe state.” It tentatively grants the request, then checks whether there is still some order in which every participant can obtain what it needs and finish. A request can be individually reasonable yet refused because it would remove every complete route for the whole.
Where it leads
Grouped under Protect what still needs to work