[PolyORB-users] Problem with Polyorb-No-Tasking

Jérôme Hugues hugues at telecom-paristech.fr
Wed Jul 29 18:36:45 CEST 2009


Le 29 juil. 09 à 18:24, xavier grave a écrit :

> I have the same behaviour on my system. I will try to understand the
> problem tonight or tomorrow morning.
>
> I have put a 1 second delay between each call to taskos and taskos2  
> and
> I have the same problem...

in po_gnatdist, in xe_back-polyorb.adb
please test the following patch

Index: xe_back-polyorb.adb
===================================================================
--- xe_back-polyorb.adb	(révision 147736)
+++ xe_back-polyorb.adb	(copie de travail)
@@ -296,7 +296,9 @@
           Write_With_Clause (RU  
(RU_PolyORB_Setup_Tasking_Full_Tasking));

           if Current.Tasking = User_Tasking then
-            Write_With_Clause (RU (RU_PolyORB_ORB_No_Tasking));
+            Write_With_Clause
+              (RU (RU_PolyORB_ORB) and ORB_Tasking_Policy_Img
+               (Current.ORB_Tasking_Policy));
              Write_With_Clause (RU  
(RU_PolyORB_Binding_Data_GIOP_IIOP));

Then recompile, reinstall PolyORB
and recompile your test

>> Maybe the compiler do not take the right configuration for PolyORB?
>> I check the code generatede for PolyORB:
>> In the DSA directory - Partitions - conf - taskos
>> in the file: polyorb-partition_elaboration.adb
>> there is this with:
>> with Polyorb.ORB.No_Tasking;
>>
>> Maybe this create the problem, because the partition do not use the
>> right profile Full_Tasking.

this is orthogonal to using full tasking
a few line above, you should fine a PolyORB.Setup line for configuring  
thread factory

the PolyORB.ORB.No_Tasking is configuring a single-threaded ORB Core.
Since your system issues two concurrent remote calls, it violates some  
assumptions
The path below should adress it (but I could not test it)

Let me know if this helps

-- 
Jérôme Hugues, TELECOM ParisTech
http://www.telecom-paristech.fr/~hugues





More information about the PolyORB-users mailing list