Messages in this thread | | | Date | Wed, 22 Nov 2006 13:44:16 +0300 | From | Evgeniy Polyakov <> | Subject | Re: [take24 0/6] kevent: Generic event handling mechanism. |
| |
On Tue, Nov 21, 2006 at 11:38:25PM -0800, Ulrich Drepper (drepper@redhat.com) wrote: > Evgeniy Polyakov wrote: > >I've checked the code. > >Since it will be a union, it is impossible to use _sigev_thread and it > >becomes just SIGEV_SIGNAL case with different delivery mechanism. > >Is it what you want? > > struct sigevent is defined like this: > > typedef struct sigevent { > sigval_t sigev_value; > int sigev_signo; > int sigev_notify; > union { > int _pad[SIGEV_PAD_SIZE]; > int _tid; > > struct { > void (*_function)(sigval_t); > void *_attribute; /* really pthread_attr_t */ > } _sigev_thread; > } _sigev_un; > } sigevent_t; > > > For the SIGEV_KEVENT case: > > sigev_notify is set to SIGEV_KEVENT (obviously) > > sigev_value can be used for the void* data passed along with the > signal, just like in the case of a signal delivery > > Now you need a way to specify the kevent descriptor. Just add > > int _kevent; > > inside the union and if you want > > #define sigev_kevent_descr _sigev_un._kevent > > That should be all.
That what I implemented. But in this case it will be impossible to have SIGEV_THREAD and SIGEV_KEVENT at the same time, it will be just the same as SIGEV_SIGNAL but with different delivery mechanism. Is is what you expect for that?
> -- > ➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, > CA ❖
-- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |