in reply to Re^14: Is there a problem with IPC::Open on Windows 7?
in thread Is there a problem with IPC::Open on Windows 7?

Strangely enough, the documentation from Microsoft does not mention neither any domain for some sort of interprocess communication within a single host. Maybe Perl does some sort of emulation when using socketpair in Windows?

Further testing, even when avoiding using shutdown in the sockets/filehandles the application returns ECONNRESET.

Is it possible to use Windows named pipes to do the same trick with select? Looks like I'm running out of options.

UPDATED: just for testing, I changed the code:

sub _mswin_pipe { my ( $read, $write ) = IO::Socket->socketpair( AF_UNIX, SOCK_STREAM, PF_UNSPEC );

to:

sub _mswin_pipe { my ( $read, $write ) = IO::Socket->socketpair( AF_INET, SOCK_STREAM, PF_UNSPEC );

The result was a disaster: the external program was executed once, communication with the parent process was lost and (since my code is designed to try to fork new children) a lot of srvrmgr.exe were opened.

Alceu Rodrigues de Freitas Junior
---------------------------------
"You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill

Replies are listed 'Best First'.
Re^16: Is there a problem with IPC::Open on Windows 7?
by BrowserUk (Patriarch) on Aug 16, 2013 at 15:26 UTC
    Is it possible to use Windows named pipes to do the same trick with select? Looks like I'm running out of options.

    Windows Named-pipes (nor anything that isn't an AF_INET socket) don't work with select.

    There is a PeekNamedPipe() function that provides for a similar functionality and could be used to emulate the select-style of operations. It also works on anonymous pipes, which would allow for Windows to emulate *nix style select for most purposes. But someone would have to write and test it.

    But why not simply use AF_INET sockets instead of AF_UNIX sockets?

    As I pointed out earlier, I can attest that these work fine with select.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.