From e24304bb14f30a167a082ed1f5860a6c88e18c77 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Mon, 26 Dec 2022 03:47:42 +0000 Subject: [PATCH] fix: raise known errors before checking for signals in waiting --- psycopg_c/psycopg_c/_psycopg/waiting.pyx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/psycopg_c/psycopg_c/_psycopg/waiting.pyx b/psycopg_c/psycopg_c/_psycopg/waiting.pyx index c778c36e9..baaead63c 100644 --- a/psycopg_c/psycopg_c/_psycopg/waiting.pyx +++ b/psycopg_c/psycopg_c/_psycopg/waiting.pyx @@ -72,12 +72,9 @@ wait_c_impl(int fileno, int wait, float timeout) select_rv = poll(&input_fd, 1, timeout_ms); Py_END_ALLOW_THREADS + if (select_rv < 0) { goto error; } if (PyErr_CheckSignals()) { goto finally; } - if (select_rv < 0) { - goto error; - } - if (input_fd.events & POLLIN) { rv |= SELECT_EV_READ; } if (input_fd.events & POLLOUT) { rv |= SELECT_EV_WRITE; } @@ -120,12 +117,9 @@ wait_c_impl(int fileno, int wait, float timeout) select_rv = select(fileno + 1, &ifds, &ofds, &efds, tvptr); Py_END_ALLOW_THREADS + if (select_rv < 0) { goto error; } if (PyErr_CheckSignals()) { goto finally; } - if (select_rv < 0) { - goto error; - } - if (FD_ISSET(fileno, &ifds)) { rv |= SELECT_EV_READ; } if (FD_ISSET(fileno, &ofds)) { rv |= SELECT_EV_WRITE; } -- 2.47.2