Cygwin: timerfd/signalfd: return EINVAL from write
Linux returns EINVAL, "fd is attached to an object which is unsuitable for writing". If we don't handle write locally, write returns EBADF. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
@ -44,12 +44,10 @@ fhandler_timerfd::timerfd (clockid_t clock_id, int flags)
|
||||
set_nonblocking (true);
|
||||
if (flags & TFD_CLOEXEC)
|
||||
set_close_on_exec (true);
|
||||
if (get_unique_id () == 0)
|
||||
{
|
||||
nohandle (true);
|
||||
set_unique_id ();
|
||||
set_ino (get_unique_id ());
|
||||
}
|
||||
nohandle (true);
|
||||
set_unique_id ();
|
||||
set_ino (get_unique_id ());
|
||||
set_flags (O_RDWR | O_BINARY);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -125,6 +123,13 @@ fhandler_timerfd::read (void *ptr, size_t& len)
|
||||
return;
|
||||
}
|
||||
|
||||
ssize_t __stdcall
|
||||
fhandler_timerfd::write (const void *, size_t)
|
||||
{
|
||||
set_errno (EINVAL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
HANDLE
|
||||
fhandler_timerfd::get_timerfd_handle ()
|
||||
{
|
||||
|
Reference in New Issue
Block a user