and
convenient support of critical sections that are safe with respect to
exceptions and asynchronous abort.
(PolyORB.Binding_Objects): Add a mutex to binding objects to protect
concurrent access to components (in particular to the notepad).
(PolyORB.Binding_Objects_QoS): Protect BO notepad access with BO mutex
(PolyORB.References.Get_Binding_Info): Make BO available to caller
(PolyORB.References.Mutex_Of): Expose Ref's mutex to make it usable in
a Scope_Lock. Enter_Mutex and Leave_Mutex removed as a result.
(PolyORB.References.Binding.Bind): Code simplification using new generic
Scope_Lock idiom.
(System.Partition_Interface): Add supporting code for RACW connection
management.
Supporting code for K602-003
Subversion-branch: /trunk/polyorb
Subversion-revision: 187379
"overriding" is
legal. This is necessary because even though PolyORB itself is compiled
in Ada
2005 mode, user programs that import parts of it might not be.
Fixes H706-007.
Also part of KC21-021.
Subversion-branch: /trunk/polyorb
Subversion-revision: 185571
part of the closure of s-parint for user (DSA) code compiled in Ada 95
mode.
Follow-up on changes for I320-027
Subversion-branch: /trunk/polyorb
Subversion-revision: 142632
of limited objects, without requiring dynamic allocation of list cells
(instead, linking pointers are provided by the objects themselves).
(PolyORB.Utils.Chained_Lists): Reimplement using the above.
Lists of ORB tasks, of binding objects and of asynchronous event sources
are now Ilists, resulting in improved performances, reduced memory
fragmentation, and reduced dependence on dynamic allocation.
For I320-027
Subversion-branch: /trunk/polyorb
Subversion-revision: 142522
PolyORB.Filters.Handle_Message): Fallback implementations providing
default
message propagation semantics.
(PolyORB.Transport.Connected.Handle_Message,
PolyORB.Transport.Datagram.Handle_Message,
PolyORB.Filters.*.Handler_Message,
PolyORB.Protocols.Handle_Message): Fall back to default message
handler.
(PolyORB.Binding_Objects.Valid): New predicate, uses the above to
transmit
a Check_Validity message across the protocol stack to ensure that it
is still working.
(PolyORB.ORB.Find_Reusable_Binding_Object): If an existing BO has become
invalid, purge it from the list of active binding objects so that it
is never considered again for reuse.
(PolyORB.ORB.Unregister_Binding_Object): Obtain position of binding
object
in active binding objects list from within the ORB critical section, to
avoid a race condition with the purge operation described above.
(PolyORB.Binding_Objects.Get_Referenced_At): New subprogram used to
obtain the iterator denoting the position of this BO on its ORB's BO
list.
Required so that Unregster_Binding_Object can access the component
under
proper critical section protection.
(PolyORB.References.Get_Binding_Info): If the binding object associated
with a reference has become invalid, forget about it (do not attempt to
reuse it).
Fixes G327-015
These changes are necessary to ensure that when a server dies, cached
binding objects connected to that server are correctly purged and never
reused.
Subversion-branch: /trunk/polyorb
Subversion-revision: 43499
profiles
are on the same node.
* Client binding objects are now reused when possible.
Related to F512-009 and to EA31-003.
[Imported from Perforce change 10072 at 2006-12-01 22:49:10]
Subversion-branch: /trunk/polyorb
Subversion-revision: 37534
server-side requests, to prevend the binding object from
being finalised before the request has been processed
in the applicative layer.
Final fix for D112-007.
[Imported from Perforce change 7920 at 2006-12-01 20:28:02]
Subversion-branch: /trunk/polyorb
Subversion-revision: 35564
stack. Contributes to reducing the amount of memory leaked.
[Imported from Perforce change 7914 at 2006-12-01 20:27:54]
Subversion-branch: /trunk/polyorb
Subversion-revision: 35560
binding objects on both client and server, and dismantle protocol
stacks only as the result of finalizing a binding object.
The flow of messages within the protocol stack during disconnection
also has been simplified.
This is preparatory work to maintaining binding objects alive
while any associated request is still being processed.
The completion of this work will constitute the fix for D112-007.
[Imported from Perforce change 7910 at 2006-12-01 20:27:38]
Subversion-branch: /trunk/polyorb
Subversion-revision: 35556
so they can be used to perform reference counting on
sessions on the server-side.
Infrastructure work for D112-007.
[Imported from Perforce change 7811 at 2006-12-01 20:26:32]
Subversion-branch: /trunk/polyorb
Subversion-revision: 35487