[omniORB] Race Condition in omniORB 4.0.5 leads to endless loop

Duncan Grisby duncan at grisby.org
Thu Mar 3 11:33:52 GMT 2005


On Monday 7 February, p.klotz at icoserve.com wrote:

> The attached patch applies against the latest CVS version of omniORB 4.0.x 
> (2005-02-07).

Thanks. I checked in your patch a while ago, but forgot to reply.

[...]
> I still see the possibility of race conditions though since the 
> combination clearSelectable()/removeSocket() is not protected by a mutex. 
> A setSelectable() call that does not respect pd_dying could still 
> interfere.

In the omniORB 4.1 development tree, I have changed the SocketCollection
implementation so it maintains its state in a different way. It's still
possible for race conditions to lead to a select() or poll() on a
destroyed socket, but now that doesn't lead to a fatal loop, since the
socket set is rebuilt.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list