HC-SR04 Without pulseIn

Hello,
I would like to know a way that I could receive an ultrasonic ping without the pulseIn command. The reason is because if you have 2 or more hc-sr04's hooked up to the Arduino, then which ever one has the first line of code will always receive first. For example:

duration1 = pulseIn(echoPin1, HIGH);
duration2 = pulseIn(echoPin2, HIGH);
duration3 = pulseIn(echoPin3, HIGH);

No matter which sensor receives the ping first, echoPin1 will always act like it receives it because it is first in the code. So, is there a way to receive a ping without a blocking command such as pulseIn?
Thanks

The PulseIn is blocking, it polls until line is changed.
you should think of a rewrite of pulseIn() using pinchange interrupts.
Not trivial but doable.