diff options
author | bala <balanatarajan@users.noreply.github.com> | 2001-12-30 16:34:04 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2001-12-30 16:34:04 +0000 |
commit | 5fc39e380353e7ce2acfed838713d9567ff487ef (patch) | |
tree | 4fa1e35105769c51b68e46b0efe9623d138a9c85 /TAO/tests | |
parent | c6c1b599d03cf5b0a267982a3aba9ff940823be6 (diff) | |
download | ATCD-5fc39e380353e7ce2acfed838713d9567ff487ef.tar.gz |
ChangeLogTag: Sun Dec 30 10:31:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'TAO/tests')
-rw-r--r-- | TAO/tests/BiDirectional/README | 23 | ||||
-rw-r--r-- | TAO/tests/BiDirectional/server.cpp | 5 | ||||
-rw-r--r-- | TAO/tests/BiDirectional_NestedUpcall/README | 8 |
3 files changed, 8 insertions, 28 deletions
diff --git a/TAO/tests/BiDirectional/README b/TAO/tests/BiDirectional/README index 74deb74a8aa..ea17bd32f25 100644 --- a/TAO/tests/BiDirectional/README +++ b/TAO/tests/BiDirectional/README @@ -13,28 +13,7 @@ ready for callback. The server then callsback the client on the same connection <no_iterations> times. If the server creates a new connection the server would crash itself. -Notes and Observations: ----------------------- -It has been observed that when the server tries to call the client -during the upcall on the same connection, there is a deadlock. To make -things clearer, the scenario can be picturised as follows - -- the server receives a request from the client -- in the upcall the server makes a remote call to the client - (callback) -- the server received BiDirectional context info from the client (and - the server has the ability to call the client on the same - connection) -- then the call from the server to the client would be on the same - connection established by the client. - -This situation would result in a deadlock. The deadlock would occur at -the server end as the server does not read the reply from the -client. This situation occurs because of the way the TP reactor (the -default in TAO) works. The reactor suspends the handler during the -upcall and so it is not in a position to react to the messages -appearing on the handle. We are trying to look at ways to get around -this situation. + diff --git a/TAO/tests/BiDirectional/server.cpp b/TAO/tests/BiDirectional/server.cpp index 9ad9a5032b4..fd5c272ead5 100644 --- a/TAO/tests/BiDirectional/server.cpp +++ b/TAO/tests/BiDirectional/server.cpp @@ -139,7 +139,8 @@ main (int argc, char *argv[]) int retval = 0; while (retval == 0) { - // Please see the README file on why this is being done + // Just process one upcall. We know that we would get the + // clients IOR in that call. CORBA::Boolean pending = orb->work_pending(TAO_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; @@ -150,6 +151,8 @@ main (int argc, char *argv[]) ACE_TRY_CHECK; } + // Now that hopefully we have the clients IOR, just start + // making remote calls to the client. retval = server_impl.call_client (TAO_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; } diff --git a/TAO/tests/BiDirectional_NestedUpcall/README b/TAO/tests/BiDirectional_NestedUpcall/README index 015f7693d5a..c40ad7424fd 100644 --- a/TAO/tests/BiDirectional_NestedUpcall/README +++ b/TAO/tests/BiDirectional_NestedUpcall/README @@ -1,9 +1,7 @@ # $Id$ This test is similar to the $TAO_ROOT/tests/BiDirectional test. The -only difference is that, this test uses the select_mt reactor, which -helps the server to make calls to client during the upcall. Please -see the README file in $TAO_ROOT/tests/BiDirectional to see why this -would fail with a TP reactor. Also see bug id #575 in bugzilla to -understand more about the TP reactors behavior. +only difference being that the server as a part of the upcall sends a +bunch of remote calls, to show some nested upcall behaviour. + |