In order to simply porting the iocore/net code which deals
with polling was encapsulated.  This means that the structure
of the code changed although the actual calls sequence should
be identical.  The TCP codepaths have been tested as well as
DNS but the raw UDP hasn't been, primarily because non of the
existing codebase uses it.

So, while it is not as safe as simple #ifdef's it is more
a question of moving interfaces rather than changing core
functionality.  I would suggest that those who are worried
read the patch.

The OSX part of the patch moves some initialization code around
because OSX doesn't initialize the thread library till after
global C++ constucters are called (something I have seen on
other platforms).   That is a potentially larger change but
necessary for an OSX port and for similar platforms.

john


On 12/18/2009 1:33 PM, Leif Hedstrom wrote:
> On 12/18/2009 02:27 PM, John Plevyak wrote:
>> Based on discussion in IRC:
>>
>> The OSX + libev + iocore/net encapsulation patch could
>> be applied to the trunk to bring this port and potentially
>> ease others based on libev.  This would require adding
>> the libev code (at least temporarily) into the code tree
>> (I say temporarily because we might through patches to libev
>> or code changes eliminate the requirement to patch the libev
>> source).
>>    
> 
> As long as this is "safe" when disabled (which I assume is the default),
> +1. When you say there's more risk, why is that? If all the libev code
> is #ifdef'd, how can it have any risk associated with it when it's
> disabled? Or is there other code that changes, which is not #ifdef'ed ?
> 
> Cheers,
> 
> -- Leif

Reply via email to