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

Reply via email to