In my opinion it waits in the same way as the Adafruit library. Maybe the conversion speed is set higher. I did not look that good at the library.
An idea popped up: What about interleaving both ADCs ?
ads1 select channel 0, trigger
ads2 select channel 0, trigger
read ads1, select channel 1, trigger
read ads2, select channel 1, trigger
read ads1, select channel 2, trigger
read ads2, select channel 2, trigger
Then I go a step further and use a millis-timer for each getConversion().
int16_t adc[2][4];
int channel = 0;
...
currentMillis = millis();
if( currentMillis - previousMillis >= 4)
{
previousMillis = currentMillis;
adc[0][channel] = ads1.getConversion();
ads1.setMux( channel);
ads1.triggerConversion();
adc[1][channel] = ads2.getConversion();
ads2.setMux( channel);
ads2.triggerConversion();
channel++;
if( channel >= 4)
{
channel = 0;
}
}
The speed of the I2C bus can be set to 400kHz with setClock(400000UL) after the Wire.begin().