blob: 01d3e76573be2c51082c8a87ad6a0a91e4bd1bad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
Tue Feb 19 07:45:05 2002 Balachandran Natarajan <bala@cs.wustl.edu>
* tao/IIOP_Connection_Handler.cpp: Added a fix for Jody ie. bug
#1129. Yet, to get a reply whether the fix is right or
wrong. Now, we close the socket with the first call to
handle_close () and delete it when the upcall count gets to
zero.
Mon Feb 11 14:03:18 2002 Balachandran Natarajan <bala@cs.wustl.edu>
* tao/Transport.h: Removed the virtual declaration from the method
bidirectional_flag (). It shouldnt have been virtual to start
with.
* tao/Muxed_TMS.h: Removed some old comments
* tao/Muxed_TMS.cpp (request_id):
* tao/Exclusive_TMS.cpp: Added a condition within request_id
(). The request_id that is generated will obey BiDirGIOP rules,
ie. the originator will send even number requests and the
receiver send odd numbered requests. The old method of
generation was giving problems in MT cases.
* tao/Invocation.cpp: Minor cosmetic changes.
* tao/IIOP_Transport.cpp: Modify the request id only for the first
request during BiDir connection origination.
Thu Jan 31 11:23:59 2002 Balachandran Natarajan <bala@cs.wustl.edu>
* tao/Cache_Entries.cpp: Did a cosmetic fix.
* tao/Cache_Entries.h:
* tao/Cache_Entries.inl: Added a new method incr_index () to the
TAO_CacheExtId class.
* tao/Resource_Factory.cpp:
* tao/Resource_Factory.h:Added two new methods,
max_muxed_connections () and locked_transport_cache (). The
former returns the number of user specified muxed connections
with a particular property. The latter returns a boolean value
to indicate whether the transport cache needs to have a lock or
not .
* tao/default_resource.cpp:
* tao/default_resource.h: Concrete implementations for the methods
declared in Resource_Factory.
* tao/Transport_Cache_Manager.cpp:
* tao/Transport_Cache_Manager.h:
* tao/Transport_Cache_Manager.inl: Added support for counted muxed
connections ie. the user can limit the number of remote
connections (with a particular property). If the thread
searching the cache for a free connection doesnt find one that
is free, the thread will wait on a condition variable for the
connection to be released. To accomodate this the following set
of changes were made
- Added a condition variable to the class
- Create the type of lock that needs to be used for the cache
locally and use that lock to create the condition variable. If
the cache is free of any locks we dont create a condition
variable.
- The creation of lock has been moved to the
Transport_Cache_Manager from the Resource_Factory.
- Added two new methods, wait_for_connection () and
is_wakeup_useful (). The wait_for_connection () blocks the
thread searching for connection, if there is a limit on the
number of muxed connections and if there have been enough
connections created with the same property. The
is_wakeup_useful () method is called by an unblocked thread to
check whether the transport that was returned is the one the
thread was waiting for.
- Removed a version of rebind () and a couple of version of
unbind () calls as they were not used.
* tao/Condition.h:
* tao/Condition.cpp:.
* tao/Condition.inl: A simple wrapper that wraps a
TAO_SYNCH_CONDITION that can be used with different types of
Mutex classes.
|