#include <aio.h>
#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
#include "pthread_impl.h"
+#include "libc.h"
static void dummy(void)
{
.si_signo = sev->sigev_signo,
.si_value = sev->sigev_value,
.si_code = SI_ASYNCIO,
- .si_pid = __pthread_self()->pid,
+ .si_pid = getpid(),
.si_uid = getuid()
};
__syscall(SYS_rt_sigqueueinfo, si.si_pid, si.si_signo, &si);
static void *io_thread(void *p)
{
struct aiocb *cb = p;
- int fd = cb->aio_filedes;
+ int fd = cb->aio_fildes;
void *buf = (void *)cb->aio_buf;
size_t len = cb->aio_nbytes;
off_t off = cb->aio_offset;
__aio_wake();
- switch (cb->aio_sigevent.sigev_notify) {
+ switch (sev.sigev_notify) {
case SIGEV_SIGNAL:
notify_signal(&sev);
break;