Guarded Suspension: Context (cont.)
Both push and pull must be synchronized to ensure the integrity of the data structure during concurrent calls.
If pull waits for push to add an object to the queue, it will wait forever. The push method cannot execute until pull returns and pull is waiting for push.