If that's what is wanted, then the async_submit() API can detect the
syncronous completion soon, and drop a result inside the result-queue
immediately. It means that an immediately following async_wait() will find
some completions soon. Or:
struct async_submit {
void *cookie;
int sysc_nbr;
int nargs;
long args[ASYNC_MAX_ARGS];
};
struct async_result {
void *cookie;
long result:
};
int async_submit(struct async_submit *a, struct async_result *r, int n);
Where "r" will store the ones that completed syncronously. I mean, there
are really many ways to do this.