Non-blocking protocol: core wrapper functions