This doesn't look right.
Note that the difference between the pulse and the other drivers is that pulse's `GetService()` calls `AddRef()` in all success cases.
More specifically, the other drivers call `AddRef()` only when the session wrapper already exists. I didn't catch that (and the tests didn't either apparently), sorry.
I think the other drivers do this in a more logical way - have the session wrapper constructor return an object with `ref` set to one and don't `AddRef()` it in `GetService()`.
Agreed.