Life cycle of a mod_python application and scope of global variables

Kyle Yancey lakeofburningfire at kyle.orgdon'tspamme
Fri Jan 24 13:30:16 EST 2003


Correction.  The code should have been this.

#!/usr/bin/env python
from mod_python import apache

def handler(req):
   req.content_type = "text/plain" 
   req.send_http_header()
   req.write(i)
   i = i + 1
   return apache.OK


On Fri, 24 Jan 2003 18:13:49 GMT, Kyle Yancey
<lakeofburningfire at kyle.orgdon'tspamme> wrote:

>I've been trying out mod_python + apache + WinXP lately.  I was
>wondering if I could get some help clarifying a few things.
>
>My primary concern is with the lifespan of global variables.  As I
>understand it, in mod_python a global variable is initialized when the
>handler script is first started.  Global variables are not released
>when the instance of the script ceases, and the variable is
>essentially static and global for all instances of the handler script.
>
>example:
>
>#!/usr/bin/env python
>from mod_python import apache
>
>def handler(req):
>   req.content_type = "text/plain" 
>   req.send_http_header()
>   req.write(i)
>   return apache.OK
>
>
>
>Consecutive executions of this script will output
>1
>2
>3
>4
>5
>etc.
>
>Are global variables just shared between multiple threads, and should
>they be protected with mutexes to prevent race conditions.  I'm a bit
>confused about this since I'm just now learning about multithreading.
>I'm aware that the smart thing to do is to just not use them, but I
>hate being uncertain about what is going on.





More information about the Python-list mailing list