From 2c741648e327305f053f01e9b8e6624f9057d17e Mon Sep 17 00:00:00 2001 From: Konstantin Osipov <kostja@tarantool.org> Date: Mon, 10 Dec 2018 21:42:54 +0300 Subject: [PATCH] sio: remove exceptions Propagate exceptions up to the caller. Functions sio_sendto(), sio_recvfrom(). In scope of #3234 --- src/coio.cc | 5 ++++- src/sio.cc | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/coio.cc b/src/coio.cc index c5bdf4b254..245376285e 100644 --- a/src/coio.cc +++ b/src/coio.cc @@ -525,6 +525,8 @@ coio_sendto_timeout(struct ev_io *coio, const void *buf, size_t sz, int flags, flags, dest_addr, addrlen); if (nwr > 0) return nwr; + if (nwr < 0 && ! sio_wouldblock(errno)) + diag_raise(); if (! ev_is_active(coio)) { ev_io_set(coio, coio->fd, EV_WRITE); ev_io_start(loop(), coio); @@ -568,7 +570,8 @@ coio_recvfrom_timeout(struct ev_io *coio, void *buf, size_t sz, int flags, src_addr, &addrlen); if (nrd >= 0) return nrd; - + if (! sio_wouldblock(errno)) + diag_raise(); if (! ev_is_active(coio)) { ev_io_set(coio, coio->fd, EV_READ); ev_io_start(loop(), coio); diff --git a/src/sio.cc b/src/sio.cc index 0c874404ec..e1ad1c1298 100644 --- a/src/sio.cc +++ b/src/sio.cc @@ -265,7 +265,7 @@ sio_sendto(int fd, const void *buf, size_t len, int flags, ssize_t n = sendto(fd, buf, len, flags, (struct sockaddr*)dest_addr, addrlen); if (n < 0 && !sio_wouldblock(errno)) - tnt_raise(SocketError, sio_socketname(fd), "sendto(%zd)", len); + diag_set(SocketError, sio_socketname(fd), "sendto(%zd)", len); return n; } @@ -276,7 +276,7 @@ sio_recvfrom(int fd, void *buf, size_t len, int flags, ssize_t n = recvfrom(fd, buf, len, flags, (struct sockaddr*)src_addr, addrlen); if (n < 0 && !sio_wouldblock(errno)) - tnt_raise(SocketError, sio_socketname(fd), "recvfrom(%zd)", len); + diag_set(SocketError, sio_socketname(fd), "recvfrom(%zd)", len); return n; } -- GitLab