Creates a thread on a remote node, without blocking.
a0tError a0IStartRemoteThread( | | | |
| int | node, | |
| int | service, | |
| a0tScheduling | sched, | |
| int | prio, | |
| size_t | stack, | |
| a0tRequest | *request, | |
| a0tBuffer | *buffer );
| |
Name | rd/wr | Description |
node | read | Node on which the thread is started. |
service | read | Service to be executed by the thread. |
sched | read | Scheduling rule of the thread. |
prio | read | Priority of the thread. |
stack | read | Stack size of thread. |
request | write | Request descriptor to hold the status. |
buffer | read | Buffer passed to the thread. |
A thread is created on node node to execute the service service with scheduling rule sched, priority prio and stack size stack. A0ServiceScheduling, A0ServicePriority and A0ServiceStack indicate that the values to be used are the ones defined with the service, at the a0NewService() function call. See A0DefaultScheduling and A0DefaultPriority for other possible values. 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 created thread receives the buffer buffer (that must be of type A0ThreadBufferType) with parameters that have been packed by the caller before the call to a0StartRemoteThread().
Error Code | Description |
A0Err...Some error occurred. | |
A0ErrOkSuccessful completion. | |
a0NewService() a0StartRemoteThread() a0IStartRemoteUrgent()