A wrapper for async functions which eliminates concurrent executions