On Wed, Jan 8, 2025 at 7:26 PM Andres Freund <and...@anarazel.de> wrote: > 1) Shared memory representation of an IO, for the AIO subsystem internally > > Currently: PgAioHandle > > 2) A way for the issuer of an IO to reference 1), to attach information to the > IO > > Currently: PgAioHandle* > > 3) A way for any backend to wait for a specific IO to complete > > Currently: PgAioHandleRef
With that additional information, I don't mind this naming too much, but I still think PgAioHandle -> PgAio and PgAioHandleRef -> PgAioHandle is worth considering. Compare BackgroundWorkerSlot and BackgroundWorkerHandle, which suggests PgAioHandle -> PgAioSlot and PgAioHandleRef -> PgAioHandle. > ZOMBIE feels even later than REAPED to me :) Makes logical sense, because you would assume that you die first and then later become an undead creature, but the UNIX precedent is that dying turns you into a zombie and someone then has to reap the exit status for you to be just plain dead. :-) > > I do agree with Heikki that REAPED sounds later than COMPLETED, because you > > reap zombie processes by collecting their exit status. Maybe you could have > > AHS_COMPLETE or AHS_IO_COMPLETE for the state where the I/O is done but > > there's still completion-related work to be done, and then the other state > > could be AHS_DONE or AHS_FINISHED or AHS_FINAL or AHS_REAPED or something. > > How about > > AHS_COMPLETE_KERNEL or AHS_COMPLETE_RAW - raw syscall completed > AHS_COMPLETE_SHARED_CB - shared callback completed > AHS_COMPLETE_LOCAL_CB - local callback completed > > ? That's not bad. I like RAW better than KERNEL. I was hoping to use different works like COMPLETE and DONE rather than, as you did it here, COMPLETE and COMPLETE, but it's probably fine. -- Robert Haas EDB: http://www.enterprisedb.com