omnithreads

Melih Ercan xe44 9777 ercanm@access.bel.alcatel.be
Fri, 04 Jul 1997 15:39:00 +0200


Hi,

In his e-mail -Re:threading under omniORB)- Sai-Lai Lo wrote:

****************************
At the server end
-----------------
For *each* network connection, a thread blocks waiting for incoming
requests.
When a request message arrives, the thread partially unmarshal the
request
to the extend that it can identify which object the request is targeted.
It then performs an upcall to the stub-level dispatch routine specific
to
the object. The dispatch routine further unmarshals the request and
invokes on
the specified operation. The dispatch routine then marshals the results
and
sends back the reply.
On return from the dispatch routine, the cycle begins again with the
thread
blocks waiting for another incoming request.
*****************************
THIS IS VISIBLE IN orb.cc FILE THAT THERE ARE 2 CLASSES WHICH CREATE
THREADS:
->class tcpsock_rendezvouser:public omni_thread
->class strand_server:public omni_thread 


*****************************
At the client end
-----------------
A thread calls on an operation of an object in a remote address space.
This
is routed to the proxy object in the local address space. Through the
proxy
object, the thread obtains *exclusive* access to a network connection,
marshals in the arguments, sends off the request, and blocks waiting for
the
reply.  After the reply arrives and is unmarshalled, the thread
*release*
the network connection and the operation is completed. ....
*****************************
I can't see any derived class from omni_thread or any instantiation of
omni_thread
on the client side.
Can anybody tell how a thread is created on client side?

Regards,

Melih.