Submodular Maximization Through Barrier Functions