MacOS support, basic os abstraction layer, README example syntax#24
MacOS support, basic os abstraction layer, README example syntax#24d4tocchini wants to merge 2 commits intoNationalSecurityAgency:masterfrom
Conversation
| clean: | ||
| @echo $(wildcard *.a *.so *.o *.pyc LemonGraph/*.pyc LemonGraph/*/*.pyc LemonGraph/*.so MANIFEST) | xargs --no-run-if-empty rm -v | ||
| @echo $(wildcard .eggs build dist LemonGraph/__pycache__ LemonGraph/*/__pycache__ LemonGraph.egg-info) | xargs --no-run-if-empty rm -rv | ||
| hash gxargs 2>/dev/null && args=gxargs || args=xargs; \ |
There was a problem hiding this comment.
mac xargs !== gnu xargs
There was a problem hiding this comment.
I'll take a look at these - I'm in the middle of overhauling some fdatasync-related stuff, and should be able to make that more portable while I'm at it.
I have a couple of ideas to replace the prctl(PR_SET_PDEATHSIG, sig) business as well, but for normal usage I think you can safely comment that out. Right now if the master process catches a SIGTERM or SIGINT, children will gracefully terminate. SIGQUIT kills everything right away. A SIGKILL or other uncaught signals on the master process will leave orphan children though - that's what I'll try to fix more portably.
There was a problem hiding this comment.
good to hear you're barking up the same tree!
What are your thoughts on that "osal", or something for sane cross-platform encapsulation, a keeper? I found it quite frustrating that the lmdb source has all the cross-platform details we'd need but b/c its sprinkled inline throughout lib-specific implementation it's not reusable without surgical copy-paste, but hey, at least it's cross-platform.
This PR is working for me on mac (10.14), let me know if any tweaks are needed...
There was a problem hiding this comment.
Just pushed a bunch of stuff - should be in better shape now with regards to portability.
No description provided.