[omniORB] Multithreading

Leandro Fanzone leandro@hasar.com
Wed Jun 26 16:23:02 2002


Thank you very much for the information, that did the trick. I tried a 
simple CorbaScript server and tried to access it from several processes 
at the same time, and in few seconds I had all sorts of problems, segs 
faults and random bugs. After changing the POA policy, none of those 
bugs appeared whatsoever. In the CorbaScript list I had no answer; I 
suppose I'll submit there the changes you suggested anyway in case is 
useful for someone else.
Thank you again!

Leandro.

Luke Deller wrote:

> Hi Leandro,
>
> It's probably worthwhile taking up this problem with the CorbaScript 
> developers.
>
> Meanwhile, to force CorbaScript to be used in a single-threaded fashion:
> What you are interested in is the threading policy of the POA.  There 
> is a POA threading policy called SINGLE_THREAD_MODEL which I think 
> does what you require.  However I am not aware of any command-line 
> option which adjusts the policies of the Root (default) POA.  [If 
> there was such an option, it would break the CORBA spec which dictates 
> the policies of the Root POA].
>
> You may be able to force CorbaScript to be used in a single-threaded 
> fashion by modifying it to create another POA (with the 
> SINGLE_THREAD_MODEL policy) to be used instead of the Root POA.  This 
> should involve quite simple modifications to CorbaScript's source code.
>
> (I haven't tried using SINGLE_THREAD_MODEL with omniORB.. does it work?)
>
> The POA is described in chapter 11 of the Corba specification; in 
> particular check out section 11.2.8, 11.3.7 and 11.3.8.
>
> Regards,
> Luke.
>
> Leandro Fanzone wrote:
>
>> Thank you for your answer; my problem is with CorbaScript, a piece of 
>> software that I did not write and that is to be compiled with 
>> omniORB. Working as a server, CorbaScript under heavy use by several 
>> clients collapse with a segmentation fault, and I suspect it is a 
>> (lack of) synchronization problem. I took a brief look at their code, 
>> and it seems not to be multithread aware. So if I could pass some ORB 
>> option through command line to prevent the multithreaded handling of 
>> the incoming clients, perhaps I could attenuate the problem; the sole 
>> idea of doing the synchronization myself in a source as extensive as 
>> is CorbaScript without knowing its inner mechanisms scares me. In any 
>> case I still could not identify positively the problem, so perhaps it 
>> even has nothing to do with this, but knowing how to avoid 
>> multithreading could help me to find the problem, or discard theories.
>>
>> bjorn rohde jensen wrote:
>>
>>> Hi Leandro,
>>>
>>> OmniORB is always multithreaded, you can not change that, but
>>> why would you want to? You can always do the required
>>> synchronisation yourself.
>>>
>>> Yours sicnerely,
>>>
>>> Bjorn
>>>
>>>  
>>>
>>
>> _______________________________________________
>> omniORB-list mailing list
>> omniORB-list@realvnc.com
>> http://www.realvnc.com/mailman/listinfo/omniorb-list
>>
>>
>
>
> _______________________________________________
> omniORB-list mailing list
> omniORB-list@realvnc.com
> http://www.realvnc.com/mailman/listinfo/omniorb-list
>