Guarded Suspension: Solution (continued)
Calls to a Widget object’s foo method cannot complete if the Widget is in its special state. Because the foo and bar methods are synchronized, subsequent calls to foo and bar won’t execute until the call to foo returns. The call to foo won’t return until a call to bar takes the Widget object out of its special state.