14 Commits

Author SHA1 Message Date
Thomas Quinot
034c14a9f1 Switch to Ada 2012 mode for compatibility with GNAT Community 2018 2018-06-14 12:04:05 +02:00
Thomas Quinot
815d110000 (PolyORB.Tasking.Mutexes): Introduce Scope_Lock controlled type for easy
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
2012-03-22 16:05:53 +00:00
Bob Duff
bcb7d3c26e Add "overriding" where appropriate. Add "pragma Ada_2005;", so
"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
2012-02-09 19:31:59 +00:00
Thomas Quinot
99f521407c Switch to GPLv3 for KC20-016
Subversion-branch: /trunk/polyorb
Subversion-revision: 183131
2012-01-04 22:41:08 +00:00
Thomas Quinot
55fdef46fe Add missing pragmas Ada 2005, needed when these units are analyzed as
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
2009-04-10 13:07:32 +00:00
Thomas Quinot
3c6c5f5374 (PolyORB.Utils.Ilists): New package supporting "in-place" chained lists
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
2009-04-09 17:15:40 +00:00
Thomas Quinot
c03453ca24 (PolyORB.Transport.Handle_Message,
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
2007-04-02 16:51:01 +00:00
Pablo Oliveira
09808de35f * Add predicates Same_Node and Is_Colocated which decide if two
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
2006-05-31 14:38:08 +00:00
Thomas Quinot
df32afd2ae Kill CM Id lines, they are just a nuisance.
[Imported from Perforce change 8923 at 2006-12-01 20:59:33]

Subversion-branch: /trunk/polyorb
Subversion-revision: 36470
2004-12-17 19:12:40 +00:00
Jérôme Hugues
9e4b4f5ec1 Corrected typos
[Imported from Perforce change 7938 at 2006-12-01 20:28:19]

Subversion-branch: /trunk/polyorb
Subversion-revision: 35573
2004-04-02 13:23:14 +00:00
Thomas Quinot
a9590642dd Store a reference to the originating binding object in
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
2004-03-23 16:13:47 +00:00
Thomas Quinot
571a351b34 Reorganize and clarify the process of tearing down a protocol
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
2004-03-19 15:55:45 +00:00
Thomas Quinot
c6cd011dbb Reorganize the management of binding objects. Construct proper
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
2004-03-18 17:03:15 +00:00
Thomas Quinot
ab110608bb Make binding objects visible outside of PolyORB.References,
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
2004-01-26 16:50:27 +00:00