асинхронный open должен работать иначе -- запрос уходит в ядро, выполнение продолжается. когда опен дествительно состоится и будет готов дескриптор, программу асинхронно проинформируют, через сигнал там или вызов колбэка и после этогоможно будет им пользоваться