Difference between MsgDeliverEvent() and MsgSendPulse() ?

What is the difference between
MsgDeliverEvent() and MsgSendPulse() ?

I’ve found that:
“In client/server designs, you typically use MsgDeliverEvent() in the server, and MsgSendPulse() in the client.”

but can I call:
MsgDeliverEvent( 0, &ionotify_sigevent );
instead of:
MsgSendPulse( ionotify_sigevent.__sigev_un1.__sigev_coid,
ionotify_sigevent.__sigev_un2.__st.__sigev_priority,
ionotify_sigevent.__sigev_un2.__st.__sigev_code,
ionotify_sigevent.sigev_value );
?

There is no difference ?
/besides that MsgDeliverEvent() “send” rcvid;

MsgDeliverEvent is more flexible then MsgSendPulse as it can deliver any type of event. Hence a server when being request to notify the client doesn’t need to worry if it’s a signal, pulse, thread etc. It also doesn’t have to create the connection.

MsgSendPulse() also have permission check, not anyone can MsgSendPulse() to anyone.
MsgDelieverEvent(0, &event) “MAY” work, but this is not the “official way” how it should
be used. (Means may not work someday later).

xtang: thanks for advice -

  • now I know that I sholud use MsgSendPulse()
    :slight_smile: