2-6
SOMobjects Base Toolkit: Programmer’s Reference Manual
Example
#include <somd.h>
/* sum a set of values in parallel */
int parallel_sum(Environment *ev, int n, SOMDObject *objs)
{
int index, sum = 0;
Request *next;
Request *reqs = (Request*) SOMMalloc(n * sizeof(Request));
NamedValue *results = (NamedValue*)
SOMMalloc(n * sizeof(Namedvalue));
for (i=0; i < n; i++)
(void) _create_request((Context *)NULL, ”_get_count”, NULL,
&(result[i]), &(reqs[i]), (Flags)0);
(void) send_multiple_requests(reqs, ev, n, (Flags)0);
for (i=0, i < n; i++) {
(void) get_next_response(ev, (Flags)0, &next);
index = (next – reqs);
sum += *((int*)results[index].argument._value);
}
return(sum);
}
Related Information
Functions: get_next_response
Methods: send, get_response, invoke
This function is described in section 6.3, “Deferred Synchronous Routines”, of the CORBA
1.1 specification.
Comentários a estes Manuais