I2C, best way to send from a slave to another slave?

So I have 3 arduino boards. 2 slaves and one master. If i want to pass sensor information from one slave
to another slave is it best to send from the slave 1 to the master and then from the master to slave 2.
Or can I send directly from slave 1 to slave 2. Working with I2C for a few months now it seems that the best way would be slave to master to slave because both slaves are waiting to be interrupted via wire from the master. So because of slave sender and slave receivers behaviour of relying on a caller it doesnt seem appropriate to go slave to slave? Anybody have experience with this and know what the optimal way of doing this is?

For slave -> master -> slave, if i want a continuous flow of sensor information from one slave to another slave it means that on the master I have to constantly call functions to receive from slave 1 and send to slave 2. Is this the correct way I should be doing it?

It is possible to use more than 1 master on a I2C bus, but I dont know if the masters can comminiate with one another

Don't think so:

And would be normal because the master expects he has to generate the clock.

So, two options. Keep it a single master system and transmit via the master. Or make it a multi-master system and switch between who is master.

Any device on the bus can start driving the clock line and call itself "master." However the Arduino libraries don't support this usage. A slave must stay a slave. It's a basic protection against two devices transmitting at the same time. It is possible in the standard for two masters to start transmitting, recognise that there's a problem and then stop that transmission attempt. It's a lot more code than you normally want to mess with on an Arduino.

If you can program the master to regularly request data from the slaves and then retransmit that to the destination slave, you will have a much more controllable and understandable system.

IMO - on a philosophical level - in that setup, you should not design the slaves such that they care about the presence or absence of another slave, let alone getting data to it. It should be the master's job to decide if data on a slave needs to go another slave, and to do that if needed.

MorganS:
Any device on the bus can start driving the clock line and call itself "master." However the Arduino libraries don't support this usage.

Do you mean this?

If an arduino, configured as a 2nd master, wants to sent something. The library is not letting the arduino wait on the I2C bus to be not-busy???

Or?

Doesn't the library allow you to preform a restart condition, in case you have to keep the bus occupied to prevent other masters from using it?

I don't recall I ever used a restart condition cuz I didnt need to.