Implement blocking commands

Test: Unit tests
PiperOrigin-RevId: 182813080
Change-Id: I952f49352fb57c02c4efb9cc4ede84dc7c32c893
10 files changed