class LoadBalancer implements ILoadBalancer {
/** @var array[] Map of (server index => server config array) */
private $mServers;
- /** @var IDatabase[][] Map of (local/foreignUsed/foreignFree => server index => IDatabase array) */
+ /** @var IDatabase[][][] Map of local/foreignUsed/foreignFree => server index => IDatabase array */
private $mConns;
/** @var float[] Map of (server index => weight) */
private $mLoads;
/**
* @param int $i
- * @return IDatabase
+ * @return IDatabase|bool
*/
public function getAnyOpenConnection( $i ) {
foreach ( $this->mConns as $connsByServer ) {
if ( !empty( $connsByServer[$i] ) ) {
- return reset( $connsByServer[$i] );
+ /** @var $serverConns IDatabase[] */
+ $serverConns = $connsByServer[$i];
+
+ return reset( $serverConns );
}
}