Executes a non-blocking urgent service on a remote node.
a0tError a0IStartRemoteUrgent( | | | |
| int | node, | |
| int | service, | |
| a0tRequest | *request, | |
| a0tBuffer | *buffer );
| |
Name | rd/wr | Description |
node | read | Node on which the service is executed. |
service | read | Service to be executed. |
request | write | Request descriptor to hold the status. |
buffer | read | Buffer passed to the service. |
The service service is executed remotely on node node with parameters passed in buffer buffer (that must be of type A0UrgentBufferType). This function doesn't block the calling thread until the service is executed remotely.
If no parameters are needed, a NULL buffer can be passed to this function.
If a NULL is passed as request, no structures are kept after the request completion, so it cannot be tested or waited later. It is supposed that the program has other means to find out if the request has ended, as for example, a subsequent request.
The difference with starting a remote thread is that here the service is executed directly by a daemon thread, without creation of an independent thread. The function activated by an urgent service must not block.
Error Code | Description |
A0Err...Some error occurred. | |
A0ErrOkSuccessful completion. | |
a0NewService() a0IStartRemoteThread() a0StartRemoteUrgent()