3
@page Two_Objects Test README File
5
This is used as an extended test for bug fix #575.
6
There are two objects managed by the same POA. Before the
7
bug fix, the calls to the objects on the same connection
8
were serialized even when the first call was a one way call.
9
The connection handle in the reactor was not 'resumed' until
10
the upcall after was completed. The fix resumes the handle
11
before the upcall is made, so that another thread could listen
12
for subsequent requests on the same connection handle.
17
The server creates two servants ( each implementing different
18
interfaces ). Two threads are created on the server and each
19
one of them listens for requests (has a orb->run() call). The
20
client first makes a one way call to Servant 1. It then makes
21
a two way call to Servant 2. Servant 1 handles the oneway
22
request and waits for a signal from Servant 2. Servant 2 gets
23
the two way request, handles it and then wakes up Servant 1.
24
We do an assertion that there is only one connection in the
25
transport cache manager. If the bug fix was not working,
26
Servant 2 would have never received the request and Servant 1
29
To run the test use the run_test.pl script:
33
the script returns 0 if the test was successful.
37
ior file = test.ior #threads = 2 msglen = 100000 ORB timeout = 30 sec
38
Client : one way call done
39
Oneway servant : (<pid>|<tid>) one way method called. About to wait for
40
two way call completion
41
Twoway servant : (<pid>|<tid>) two way method called.
42
Twoway servant : (<pid>|<tid>) about to signal one way thread.
43
Oneway servant : (<pid>|<tid>) woke up after wait
44
Client : length of returned data is 100000
45
(<pid>|<tid>) event loop finished
47
<pid>, <tid> will have actual values for process id and thread id.