This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 09/09/2016 04:41 PM, Zack Weinberg wrote:
On Fri, Sep 9, 2016 at 10:28 AM, Florian Weimer <fweimer@redhat.com> wrote:On 09/09/2016 04:21 PM, Torvald Riegel wrote:On Thu, 2016-09-08 at 13:44 +0200, Florian Weimer wrote:I have made the system call wrapper a cancellation point. (If we implement the simpler getentropy interface, it would not be a cancellation point.)Why did you do that?I have to, because it can block indefinitely.Is it practical to make it a cancellation point if and only if called in blocking mode? I suspect that is the behavior basically everyone wants. Unlike with file descriptors, blocking/nonblocking is visible in the flags passed to the function, so it might not be hard.
The predominant use case is to call getrandom to request blocking (with flags == 0), without expecting blocking (because the kernel pool is initialized). This would have to be a cancellation point, only the obscure GRND_NONBLOCK would not be. So I don't think it's worth the complexity.
(The current goal is to provide a minimal system call wrapper.)
(What does Solaris' implementation do? OpenBSD's?)
I don't have access to a Solaris system with a compiler. The manual page doesn't go into that level of detail.
Does OpenBSD have getrandom? I'm not sure if their cancellation implementation is comparable, either.
Florian
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |