Without a proper size, we get MACH_RCV_TOO_LARGE instead of MACH_MSG_SUCCESS.
* sysdeps/mach/hurd/setitimer.c (timer_thread): Add return_code_type
field to received message, and set the receive size in __mach_msg call.
struct
{
mach_msg_header_t header;
+ mach_msg_type_t return_code_type;
error_t return_code;
} msg;
_hurd_itimerval. */
err = __mach_msg (&msg.header,
MACH_RCV_MSG|MACH_RCV_TIMEOUT|MACH_RCV_INTERRUPT,
- 0, 0, _hurd_itimer_port,
+ 0, sizeof(msg), _hurd_itimer_port,
_hurd_itimerval.it_value.tv_sec * 1000
+ _hurd_itimerval.it_value.tv_usec / 1000,
MACH_PORT_NULL);