[omniORB] SINGLE_THREAD_MODEL and in-process calls 
    Duncan Grisby 
    duncan at grisby.org
       
    Tue May 10 21:49:49 BST 2005
    
    
  
On Tuesday 10 May, Alex Tingle wrote:
> Using a lock ensures that there is no concurrency, but I can imagine
> circumstances where this solution could still trap the unwary: Imagine a
> servant method that locks a mutex and another that unlocks it. The naive
> developer would assume that this would be safe in a SINGLE_THREAD_MODEL
> POA.
That developer would be extremely naive, since they would be at the
mercy of clients and the network not to ruin their locking.
> I imagine that the MAIN_THREAD_MODEL works in the same way. So there is
> NO WAY to guarantee that all calls are running in the same thread. I'll
> have to remember that.
No, the MAIN_THREAD_MODEL does what it says -- all calls are dispatched
on a single main thread. You have to give the ORB the main thread with
orb->run() or perform_work(). See section 4.5.1 of the omniORB manual:
  http://omniorb.sourceforge.net/omni40/omniORB/omniORB004.html
Cheers,
Duncan.
-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --
    
    
More information about the omniORB-list
mailing list