Couldn't we check the return value of SyncBore() and throw an exception if it didn't work? Even in the worst case (unhandled exception) this would give better defined behaviour.