Skip to content
  • Brad King's avatar
    ENH: Teach KWSys Process basic VMS support · 48d72f12
    Brad King authored
    This achieves basic process execution on OpenVMS.  We use work-arounds
    for different fork()/exec() behavior and a lack of select().
    
    VMS emulates fork/exec using setjmp/longjmp to evaluate the child and
    parent return cases from fork.  Therefore both must be invoked from the
    same function.
    
    Since select() works only for sockets we use the BeOS-style polling
    implementation.  However, non-blocking reads on empty pipes cannot be
    distinguished easily from the last read on a closed pipe.  Therefore we
    identify end of data by an empty read after the child terminates.
    48d72f12