Azt ugye érzed, hogy nem ezt hívják "megoldásnak"? Ez max. workaround.
A korrekt megoldás vagy az, hogy a készülék aszinkron módon kommunikál (kiadod a feladatot, majd lehet a státuszt kérdezgetni, ami addig "in progress", amíg meg nincs a válasz, utána viszont akárhányszor ki lehet kérdezni a végeredményt), vagy csak egy valaki használhatja a készüléket (egy daemon/kernel driver), és tőle kérdezgeti mindenki más.