I would definitely say that posix_spawn is the correct path to implement this; 
that will keep pretty close to the way the one on darwin works;

Couple of suggestions:

posix_spawnattr_setsigmask should be set to the empty signal set

the attribute flags should probably be POSIX_SPAWN_CLOEXEC_DEFAULT | 
POSIX_SPAWN_SETSIGMASK | POSIX_SPAWN_SETSIGDEF

You can probably skip QoS since it won’t exist on linux.

There may be some issue with not having libdispatch to use for a source to 
watch a DISPATCH_PROC_EXIT but this perhaps could be done via a pthread (not 
certain on exactly how but perhaps it can be done)

It also might be useful in this case to drop down to C similarly as 
CFXMLInterface - but pick your poison on that one.


> On Dec 18, 2015, at 11:08 AM, Dan Stenmark via swift-corelibs-dev 
> <swift-corelibs-dev@swift.org> wrote:
> 
> I hope to take a crack at implementing some of NSTask this weekend.  What are 
> the recommended posix_spawnattr_t flags that should be set?  Do we also want 
> to take the opportunity to expose the ability to override some of these flags 
> (like POSIX_SPAWN_SETPGROUP) or do we want to avoid tying this with 
> posix_spawn() too closely?
> 
> Dan
> _______________________________________________
> swift-corelibs-dev mailing list
> swift-corelibs-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

Reply via email to