A settle/distribute/harvest function must process all outstanding items in a single call. As adoption grows, the required gas eventually exceeds the block limit and the core operation can never run again.
// harvest() loops all vaults. At 300 vaults it needs 35M gas > block // limit -> harvest permanently reverts; rewards frozen.
// make settlement incremental / paginated with a cursor
function settle(uint256 from, uint256 to) external { for (uint i=from; i<to; ++i) _settle(i); }
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0244 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.