Pulses with a Resource Manager

Hi, I’m new here and I’m looking for some help, I need to implement (and understand very well) a pulse example with a resource manager. I have an example where there’s a client and a server processes communicating. I want to have the client send an structure sigevent (a pulse), have the server receive it with a resource manager, and reply.

Here’s a link where it explains something about this, but its incomplete.
qnx.com/developers/docs/qnx_ … tml#PULSES

I’m so confused about using pulses and resource managers, if anyone have a source where to find examples please tell me.

Adrián.

May be you can get sufficient information regarding how to write the resource manager here,
qnx.com/developers/docs/qnx_ … esmgr.html,
and then you can embed the PULSE inside the resource manager.

I hope it will help… (:slight_smile:

Well you do seem to be a little confused. Pulses are a light weight communication device that is one way, so once your server/resource-manager receives the pulse, it will not be able to reply. The client that sends the pulse does not wait either. If you want a synchronized exchange of information, the client can do a “send” to the server, in which case it will wait for a reply.

There are some complex situations in which two servers might need to communicate, one acting as the client. In addition one might not want the client (since it is a server) waiting. Under QNX 4 one might set up a scenerio similar to the one you describe, using a pulse (proxy in QNX4) as a way of telling one server to send a message back to the other. Under QNX 6, it would probably make more sense to do a send in a new thread for this communication.

I think you should read on notification, io_nofity. The client would requestion notification (that is where the Event is build), the server store the request and fires it when it’s time too.

Doesn’t matter what the event is, pulse, signal, etc.

Thank you all friends, I thought no one would help with this, but I was wrong =).
I’m gonna be working under Neutrino and replace some code that exists with new features, for instance; proxies with pulses and use resource managers, that was I told to do. Proxies are used only in one module:

void IOClientThread()
{

/*---------------------------------------------------------

  • Set up a proxy … -
    ---------------------------------------------------------*/
    wIOClientProxy=qnx_proxy_attach(0,0,0,-1);

while(! wShutdown)
{
/*---------------------------------------------------------

  • Wake up call from proxy pid -
    ---------------------------------------------------------*/
    Receive(0,0,0); // May receive from proxy only !

So this is a thread waiting for a proxy from the main code or another thread, and it doesn’t need to answer and the sender doesn’t have to become blocked, thats why pulses are needed instead of Send because you know Send blocks the sender. And thats why I was told to use Resource managers sending pulses. About the synchronized exchange of information I mentioned above it was because of “all” the examples I have found (not much really :frowning: ).
About the IO_NOTIFY I read not much, so I think I need to check it out, but all your support is welcome and appreciated :slight_smile:.
the qnx official web site is my main source of information, and God bless it exists but I would be happier if there were more examples on the web :stuck_out_tongue:.

See ya and have a nice day!

Adrián.