According to DOOR_RETURN(3C), door_return can actually fail and return to the calling process in certain situations:
Upon successful completion, door_return() does not return to the calling
process. Otherwise, door_return() returns -1 to the calling process and
sets errno to indicate the error.
...
The door_return() function fails and returns to the calling process if:
E2BIG
Arguments were too big for client.
EFAULT
The address of data_ptr or desc_ptr is invalid.
EINVAL
Invalid door_return() arguments were passed or a thread is
bound to a door that no longer exists.
EMFILE
The client has too many open descriptors.
So! It would be neat to be able to turn this into a function that produces a Result type
According to
DOOR_RETURN(3C),door_returncan actually fail and return to the calling process in certain situations:So! It would be neat to be able to turn this into a function that produces a
Resulttype