New submission from Serhiy Storchaka <[email protected]>:
In Modules/selectmodule.c it is assumed that the kevent structure is defined on
FreeBSD and NetBSD as:
struct kevent {
uintptr_t ident;
short filter;
u_short flags;
u_int fflags;
intptr_t data;
uintptr_t udata;
};
and on OpenBSD as:
struct kevent {
u_int ident;
short filter;
u_short flags;
u_int fflags;
intptr_t data;
int udata;
};
Actually it is defined on FreeBSD as:
struct kevent {
uintptr_t ident;
short filter;
u_short flags;
u_int fflags;
intptr_t data;
void *udata;
};
On OpenBSD as:
struct kevent {
uintptr_t ident;
short filter;
u_short flags;
u_int fflags;
int64_t data;
void *udata;
};
And on NetBSD as:
struct kevent {
uintptr_t ident;
uint32_t filter;
uint32_t flags;
uint32_t fflags;
int64_t data;
intptr_t udata;
};
Other issues are related to rich comparison. Due to integer overflows the
ordering is not transitive. The rich comparison protocol is not properly
supported, comparing a kevent_event object with a non-kevent_event object don't
falls back to the rich comparison methods of the right arguments.
----------
assignee: serhiy.storchaka
components: Extension Modules, FreeBSD
messages: 305187
nosy: koobs, serhiy.storchaka
priority: normal
severity: normal
status: open
title: Issues with kqueue
type: behavior
versions: Python 2.7, Python 3.6, Python 3.7
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue31893>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com