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.
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.
In reply to Re: Fork Windows
by BrowserUk
in thread Fork Windows
by bkiahg
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |