Merge pull request #2301 from sonndinh/remove-dup-reactor-functions
[ACE_TAO.git] / TAO / tests / MT_NoUpcall_Client_Leader / README
blob2bbd43edf4c49f44b95451deaf959f512c6e89b2
3 The test simulates a case when an incomming requests is being detected while a
4 client-leader thread is waiting in the reactor event loop for its own reply.
6 The server uses MT_NOUPCALL client connection handling strategy. The defect was
7 in the fact that while the above described incomming request was correctly not
8 being handled, the corresponding transport handle remained suspended. This
9 caused the reactor to exclude that handle from the read mask and it never gave
10 other followers a chance to read from that handle. Eventually, these requests
11 remained "ignored"
13 The resolution is to resume the handle *and* notify the reactor when an
14 incomming requests is being detected, while a client-leader thread is waiting
15 in the reactor event loop for its own reply. Thus, if any follower threads are
16 available, they can pick it up and process it eventually.
18 A rapidly increasing spin prevention back-off delay helps to mitigate the
19 negative influence of this solution over the processor utilization.
21 Run the test by starting the server:
23   ./server -ORBSvcConf mt_noupcall.conf
25 And the client:
27   ./client
29 If any requests get "ignored" the server process will hang indefinitely.