1. Windows doesn't do signals!

    Perl emulates (badly) a very limited set of (just 4 trappable) signals under Win32. Any application that relies upon signals for IPC will fail to work reliably under Windows.

  2. Windows doesn't do fork.

    Perl emulates fork using threads under Win32. It uses USER space code, to emulate the COW sharing of memory via CLONING (wholesale copying) of data. The result is relatively slow and memory consuming.

Cygwin does a similar emulation of signals and fork but uses real processes for the latter. It still involves wholesale copying of memory to emulate COW, and the signals emulation whilst more complete is still an emulation; incomplete and far from transparently compatible.

I have to concur with tilly that you would be far better off separating the webserver from your application and using a lightweight dedicated HTTP server, rather than trying to roll your own cross-platform solution in Perl.

Something like TinyWEB or TinySSL is a 53k executable with a 2MB memory footprint, comes with source (albiet Delphi), and is surprisingly fast and robust non-forking (select loop driven) server that can handle Perl cgis.

There are lots of others, some platform-specific, some cross-platform. Writing & maintaining your own in Perl doesn't make sense.


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.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

In reply to Re: Fork Windows by BrowserUk
in thread Fork Windows by bkiahg

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.