Default system call method does not work on Cygwin

Issue #18 resolved
Johannes Ring created an issue

The default system call method, that is SUBPROCESS, results in the following error on Cygwin:

OSError: [Errno 11] Resource temporarily unavailable

The two other system call methods works fine. I suggest to use OS_SYSTEM as the default system call method on Windows.

Comments (5)

  1. Johan Hake

    Are there any drawbacks for using that as default for all systems? For example is that the one I am using on abel.uio.no.

  2. Johannes Ring reporter

    @johanhake - I don't think so. The reason SUBPROCESS was chosen as the default was apparently that it does not use temp files (see pull request #2).

    Maybe @blechta has any comments on this.

  3. Jan Blechta

    Yes, exactly. A communication which SUBPROCESS does using pipes is done using temp files by OS_SYSTEM. It is hardly a drawback as whole JIT-compilator apparatus uses filesystem and key aspect for scalability is that only one process touches filesystem during JIT-ing, which was addressed by #16.

    Technical detail: OS_SYSTEM does something like

    cmd = command + " > " + tempfile + " 2>&1"
    os.system(cmd)
    

    which I'm not sure how it is portable and whether it is at least POSIX-compliant.

  4. Log in to comment