added support for performing blocking and non-blocking operations at the same time