From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2155) id A7669385802E; Mon, 22 Nov 2021 11:52:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A7669385802E Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: raise: align return value and error checking to Linux X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/master X-Git-Oldrev: 24bffff63eb798d721b75b1c38c18f1687d33a2a X-Git-Newrev: afb7c557d2af10cdcb16c7edcc9d16224995b9e0 Message-Id: <20211122115228.A7669385802E@sourceware.org> Date: Mon, 22 Nov 2021 11:52:28 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Nov 2021 11:52:28 -0000 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=afb7c557d2af10cdcb16c7edcc9d16224995b9e0 commit afb7c557d2af10cdcb16c7edcc9d16224995b9e0 Author: Corinna Vinschen Date: Mon Nov 22 12:35:39 2021 +0100 Cygwin: raise: align return value and error checking to Linux raise(2) on Linux returns the same values and sets errno independent of calling kill(2) or pthread_kill(3). Align code to behave the same. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/signal.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc index f4b468664..2cf750f5c 100644 --- a/winsup/cygwin/signal.cc +++ b/winsup/cygwin/signal.cc @@ -303,7 +303,12 @@ raise (int sig) pthread *thread = _my_tls.tid; if (!thread || !__isthreaded) return kill (myself->pid, sig); - return pthread_kill (thread, sig); + + /* Make sure to return -1 and set errno, as on Linux. */ + int err = pthread_kill (thread, sig); + if (err) + set_errno (err); + return err ? -1 : 0; } static int