Interrupting a delay

Here's a Quick and Dirty that will get you to the next reason why you shouldn't use delays.

void delay_gas()
{
  int d = analogRead(1);
  for(int del = map(d, 0, 1023, GDEL_MIN, GDEL_MAX); del > 1; del--)  //still having issue with interupt not cutting into this function
  {
    if ( trig_EN )  break;
    delay(1);
  }
}