[Lldb-commits] [PATCH] Move ConnectionFileDescriptor to posix-subfolder in preparation for implementing on Windows

jingham at apple.com jingham at apple.com
Tue Sep 30 14:23:11 PDT 2014


Seems to me that if it needs separate host implementations then it should be in the Host specific directories.  I sympathize with leaving it in Core as a promise that later on somebody will figure out how to pull just the Host specific parts into some lower level abstraction, but in the medium term that just makes the lldb structure less clear.

However, if it turns out that there is a lot of code duplication between the Windows and Posix versions of this class, it would be better to keep the common code in core and use either inheritance or some other pattern to just put the Host specific implementation parts in their appropriate Host directories.

Jim


> On Sep 30, 2014, at 2:06 PM, Zachary Turner <zturner at google.com> wrote:
> 
> Good question.  Logically it seems a little too high level for Host to me.  Conceptually speaking, CFD is just a wrapper around one of any number of host primitives.  For example, it's a wrapper around a file, or a socket, or a pipe, etc.  It just allows you to treat all those things using the same interface.  Host seems more appropriate for providing lower-level primitives.  It's kind of a grey area here though, because the implementation of CFD uses select(), which doesn't lend itself to a nice port on Windows, basically the whole thing has to be re-written.
> 
> I brainstormed ways of lowering a select-like abstraction into Host so that CFD could just be implemented without any platform specific stuff, but it's not that easy since the semantics have some subtle differences that make it difficult to present a generic interface.
> 
> On Tue, Sep 30, 2014 at 1:42 PM, Ed Maste <emaste at freebsd.org> wrote:
> I haven't looked closely at the proposed patch, but should CFD instead migrate to source/Host/...?
> 
> http://reviews.llvm.org/D5548
> 
> 
> 




More information about the lldb-commits mailing list