Datahub.read( ... timeout values?

Hi, I see there is a timeout value as the second parameter in Datahub.read() - is there any guidance on the useful values for different resources?
Ideally I would like to read several sensors in parallel with suitable timeouts, I’m guessing if parallel operation isn’t possible then I could trigger the reads in a certain order to maximise the chance of success…
For the simple sensors - light, imu, environment I imagine 0 is fine as they should be able to read immediately?
For the utils/signal cells and so on, is there any guidance on the value? I imagine it might have to be >0?
For the location through GPS again I suppose the value should be large to give a good chance of a location - any ideas?

Does 0 actually mean wait forever or do not wait at all?