Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^4: [FCGI.pm] - not threads-safe?

by zdm (Sexton)
on Aug 20, 2013 at 14:15 UTC ( #1050187=note: print w/ replies, xml ) Need Help??


in reply to Re^3: [FCGI.pm] - not threads-safe?
in thread [FCGI.pm] - not threads-safe?

It mean, that FCGI.pm MUST have properly implemented cleanup routine, that cleanup used resources in right way, and a public method to call this routine.

My question was - is there anybody solve this problem?


Comment on Re^4: [FCGI.pm] - not threads-safe?
Re^5: [FCGI.pm] - not threads-safe?
by BrowserUk (Pope) on Aug 20, 2013 at 14:30 UTC
    It mean, that FCGI.pm MUST have properly implemented cleanup routine,

    Why "MUST" it? Because you said so? It DOESN'T, and there is a good reason:

    It makes no sense to use threads with FCGI

    I'm not going to explain that. YOU need to go out and read up on FastCGI and FCGI to understand why that is so.


    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.

      Hm, i work with FastCGI protocol and applications more than five years, and, really, don't understand, why there is no sense to use FastCGI with threads? Maybe i miss something important?

      What is the difference between threads and forked processes in this context and why use FastCGI with forks has sense but with threads - no?

      Please, explain in few words.
        why there is no sense to use FastCGI with threads?

        Because FastCGI and FCGI have been developed to expect the forking model -- ie. separate processes with no shared state. They therefore have never been designed to be thread-safe.

        That's not to say that a FastCGI-style of operation -- persistent perl instances servicing many serial connections -- wouldn't be possible; and perhaps even effective; but it would need to be written from the ground up to understand the environment it is operating in and be thread-safe from the get-go.

        It would be a different animal with different requirements and you will not get anywhere trying to slap threads on top of FCGI.

        If you need more concurrency, start more FastCGI handler processes. That's the way it is designed to work.

        What is the difference between threads and forked processes in this context

        Sorry to put it this way, but if you do not understand that difference; you should not be using threads.

        Please, explain in few words.

        Not possible; which I why I suggested you go do some reading.


        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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1050187]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (11)
As of 2014-09-16 13:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (24 votes), past polls