Stackless Python

Introduction

Stackless Python is an enhanced version of the Python programming language.

This example shows how to take advantage of Stackless Python with the Twisted framework.

Example

The following example shows how a single method is exposed in this way:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import stackless

from   twisted.web import resource, http, server, error
from   twisted.internet import reactor
from   twisted.python import log

from   pyamf import remoting
from   pyamf.remoting.gateway.twisted import TwistedGateway
from   twisted.internet import defer
from   twisted.internet import task


class EchoServer(TwistedGateway):

   def __init__(self):
       super(EchoServer, self).__init__()
       self.request = None
       return

   def __echo__(self, request, deferred, y):
       deferred.callback(y)

   def echo(self, request, y):
       deferred = defer.Deferred()
       stackless.tasklet(self.__echo__)(request, deferred, y)

       return deferred


if __name__== "__main__":
   gw = EchoServer()
   gw.addService(gw.echo, "echo", "echo")

   root = resource.Resource()
   root.putChild('gwplayer', gw)
   reactor.listenTCP(8080, server.Site(root))
   print "server running on localhost:8080"

   task.LoopingCall(stackless.schedule).start(.01)
   stackless.tasklet(reactor.run)()
   stackless.run()

Table Of Contents

Previous topic

Werkzeug

Next topic

web2py

This Page