Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3

Chris Friesen
2007-02-28T19:04:22Z

Davide Libenzi wrote:

> struct async_syscall {
> unsigned long nr_sysc;
> unsigned long params[8];
> long *result;
> };
>
> And what would async_wait() return bak? Pointers to "struct async_syscall"
> or pointers to "result"?

Either one has downsides. Pointer to struct async_syscall requires that
the caller keep the struct around. Pointer to result requires that the
caller always reserve a location for the result.

Does the kernel care about the (possibly rare) case of callers that
don't want to pay attention to result? If so, what about adding some
kind of caller-specified handle to struct async_syscall, and having
async_wait() return the handle? In the case where the caller does care
about the result, the handle could just be the address of result.

Chris