Thread_id should be optional and thus not filled in if we
can't provide a sensible value. Unfortunately we made it
mandatory in QMP.
Normally, converting a mandatory output value to optional is a
back-compatibility risk (we could break apps that depended on it being
present). But if the only apps that depended on it being present are
compiled on Linux, where the member will actually be present, I think
that changing the schema to make it optional for non-Linux platforms
won't be a back-compatibility nightmare (but we will have to be
careful in our documentation).
Options for systems where don't know how to compute a system-wide thread
ID:
0. Return a bogus value: the PID. This is the status quo.
1. Return a more obviously bogus value: -1. Semantic compatibility
break. Should be harmless, because a QMP client relying on the
thread-id being the PID would be insane.
2. Make thread-id optional, present iff we can compute a value.
This is what we should have done, but we didn't, and now it's a
syntactic compatibility break. Matters only if it actually breaks
QMP clients. We believe the one we know shouldn't break.
Preferences?