Every host that you fail to download from is sent a push request.
Gnucleus does not wait for this push request before trying the next host. If the host responds to the push, then Gnucleus will drop what its doing and start transfering from there.
This process speeds the time in finding someone to download from, push works fine.