Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Kamil Rytarowski <kamil@netbsd.org>
To: Tom Tromey <tom@tromey.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 01/10] Add handle_eintr to wrap EINTR handling in syscalls
Date: Thu, 3 Sep 2020 23:10:21 +0200	[thread overview]
Message-ID: <4da8ea81-3d9d-35f3-0adf-81c71ad6f57a@netbsd.org> (raw)
In-Reply-To: <87sgbzq714.fsf@tromey.com>


[-- Attachment #1.1: Type: text/plain, Size: 1048 bytes --]

On 03.09.2020 16:17, Tom Tromey wrote:
>>>>>> "Kamil" == Kamil Rytarowski <n54@gmx.com> writes:
> 
> Kamil> +2020-03-17  Kamil Rytarowski  <n54@gmx.com>
> Kamil> +
> Kamil> +	* eintr.h: Add handle_eintr.
> 
> Kamil> +template <typename Fun, typename... Args>
> Kamil> +inline decltype (auto) handle_eintr (const Fun &F, const Args &... A)
> 
> I like this, but from what I read it seems that "decltype(auto)" is
> C++14 -- but gdb is still C++11.
> 

OK, I have downgraded this to C++11.

> 
> Kamil> +{
> Kamil> +  decltype (F (A...)) ret;
> Kamil> +  do
> Kamil> +    {
> Kamil> +      errno = 0;
> Kamil> +      ret = F (A...);
> Kamil> +    }
> Kamil> +  while (ret == -1 && errno == EINTR);
> 
> Also this seems to assume that "ret" is comparable to an int anyway.
> So maybe just assuming int everywhere would be ok.
> 

This assumption is not always valid, e.g. read(2) returns ssize_t.

I've added in the template flexibility of the returned type as it could
be e.g. nullptr for fopen(3).

> Tom
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2020-09-03 21:13 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-02 17:59 [PATCH 00/10] Add minimal NetBSD/amd64 gdbserver support Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 01/10] Add handle_eintr to wrap EINTR handling in syscalls Kamil Rytarowski
2020-09-03 14:17   ` Tom Tromey
2020-09-03 21:10     ` Kamil Rytarowski [this message]
2020-09-02 17:59 ` [PATCH 02/10] Register a placeholder for NetBSD shared functions in gdb/nat Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 03/10] Build nat/netbsd-nat.o for the NetBSD native target Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 04/10] Add netbsd_nat::pid_to_exec_file Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 05/10] Add gdb/nat common functions for listing threads Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 06/10] Add netbsd_nat::enable_proc_events in gdb/nat Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 07/10] Add a common utility function to read and write siginfo_t in inferior Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 08/10] Avoid double free in startup_inferior Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 09/10] Switch local native code to gdb/nat shared functions Kamil Rytarowski
2020-09-02 17:59 ` [PATCH 10/10] Add minimal and functional NetBSD/amd64 gdbserver Kamil Rytarowski
2020-09-03 17:42   ` Aktemur, Tankut Baris
2020-09-04  0:13     ` Kamil Rytarowski
2020-09-04  7:58       ` Aktemur, Tankut Baris
2020-09-04 12:35         ` Kamil Rytarowski
2020-09-16 16:08   ` Tom Tromey
2020-09-18 17:41     ` Kamil Rytarowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4da8ea81-3d9d-35f3-0adf-81c71ad6f57a@netbsd.org \
    --to=kamil@netbsd.org \
    --cc=gdb-patches@sourceware.org \
    --cc=tom@tromey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox