Jacek Caban (@jacek) commented about server/console.c:
{ struct object obj; /* object header */ struct fd *fd; /* pseudo-fd */
- struct list entry; /* entry in console_output_list */
- struct console *console; /* associated console at creation time */
This is a bit surprising, given that these are meant to be unbound. I guess it's fine since tests back it up, but another explanation could be that it's actually bound to the parent process it was created in and, when needed, uses that process's current console. That would feel more consistent with my understanding of unbound console handles. Would you mind checking that theory?