[Python-Dev] Documenting the private C API (was Re: Questions about signal handling.)

Antoine Pitrou solipsis at pitrou.net
Tue Sep 25 10:18:07 EDT 2018

On Tue, 25 Sep 2018 10:01:56 -0400
Barry Warsaw <barry at python.org> wrote:
> On Sep 25, 2018, at 03:44, Victor Stinner <vstinner at redhat.com> wrote:
> > By the way, recently, we had to fix yet another bug in signal
> > handling. A new function has been added:
> > 
> > void
> > _PyEval_SignalReceived(void)
> > {
> >    /* bpo-30703: Function called when the C signal handler of Python gets a
> >       signal. We cannot queue a callback using Py_AddPendingCall() since
> >       that function is not async-signal-safe. */
> > }  
> Is anybody else concerned about the proliferation of undocumented private C API functions?  I’m fine with adding leading underscore functions and macros when it makes sense, but what concerns me is that they don’t appear in the Python C API documentation (AFAICT).

Not really.  Many are just like "static" (i.e. module-private)
functions, except that they need to be shared by two or three different
C modules.  It's definitely the case for _PyEval_SignalReceived().

Putting them in the C API documentation risks making the docs harder to
browse through for third-party users.  I think it's enough if there's a
comment in the .h file explaining the given function.



More information about the Python-Dev mailing list