diff -Naur PyKQueue-1.3/Makefile.pre.in PyKQueue-1.3.new/Makefile.pre.in --- PyKQueue-1.3/Makefile.pre.in 2004-04-23 00:23:17.000000000 -0700 +++ PyKQueue-1.3.new/Makefile.pre.in 2004-04-23 14:09:10.000000000 -0700 @@ -118,7 +118,7 @@ OPT= @OPT@ LDFLAGS= @LDFLAGS@ LDLAST= @LDLAST@ -DEFS= @DEFS@ +DEFS= LIBS= @LIBS@ LIBM= @LIBM@ LIBC= @LIBC@ diff -Naur PyKQueue-1.3/kqsyscallmodule.c PyKQueue-1.3.new/kqsyscallmodule.c --- PyKQueue-1.3/kqsyscallmodule.c 2001-01-28 18:59:50.000000000 -0800 +++ PyKQueue-1.3.new/kqsyscallmodule.c 2004-04-23 00:47:02.000000000 -0700 @@ -137,7 +137,7 @@ } statichere PyTypeObject KQEvent_Type = { - PyObject_HEAD_INIT(NULL) + PyObject_HEAD_INIT(&PyType_Type) 0, // ob_size "KQEvent", // tp_name sizeof(KQEventObject), // tp_basicsize @@ -291,13 +291,15 @@ /* Build timespec for timeout */ totimespec.tv_sec = timeout / 1000; - totimespec.tv_nsec = (timeout % 1000) * 100000; + totimespec.tv_nsec = (timeout % 1000) * 1000000; // printf("timespec: sec=%d nsec=%d\n", totimespec.tv_sec, totimespec.tv_nsec); /* Make the call */ + Py_BEGIN_ALLOW_THREADS gotNumEvents = kevent (self->fd, changelist, haveNumEvents, triggered, wantNumEvents, &totimespec); + Py_END_ALLOW_THREADS /* Don't need the input event list anymore, so get rid of it */ free (changelist); @@ -361,7 +363,7 @@ statichere PyTypeObject KQueue_Type = { /* The ob_type field must be initialized in the module init function * to be portable to Windows without using C++. */ - PyObject_HEAD_INIT(NULL) + PyObject_HEAD_INIT(&PyType_Type) 0, /*ob_size*/ "KQueue", /*tp_name*/ sizeof(KQueueObject), /*tp_basicsize*/