New submission from Serhiy Storchaka <storchaka+cpyt...@gmail.com>: 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 <rep...@bugs.python.org> <https://bugs.python.org/issue31893> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com