Commit workflow with blocking builds

I want to configure CIrcleCI to run a workflow on commit, but only have a single instance of a workflow per branch and don’t discard currently running workflow when new commit arrives.

Instead, build should finish and take the latest unprocessed commit immediately.

Is it possible to achieve using standard config.yml?