Skip to content
This repository was archived by the owner on Aug 19, 2018. It is now read-only.

Commit e7224d7

Browse files
committed
fasttransport: Swap clientSessions hash table for list
1 parent 02f9ef9 commit e7224d7

File tree

2 files changed

+147
-107
lines changed

2 files changed

+147
-107
lines changed

ft/client.py

+24-1
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,34 @@
2020
from transport import Transport, Buffer, TEST_ADDRESS
2121
from util import gettime
2222

23+
class Service(object):
24+
def __init__(self, address, session):
25+
self.address = address
26+
self.session = session
27+
28+
class Services(object):
29+
def __init__(self, transport):
30+
self._transport = transport
31+
self._services = {}
32+
33+
def getService(self, address):
34+
if address in self._services:
35+
return self._services[address]
36+
else:
37+
session = self._transport.getClientSession()
38+
service = Service(address, session)
39+
session.connect(service)
40+
self._services[address] = service
41+
return service
42+
43+
2344
def main():
2445
random.seed(0)
2546

2647
d = Driver()
2748
t = Transport(d, isServer=False)
49+
services = Services(t)
50+
s = services.getService(TEST_ADDRESS)
2851

2952
for i in itertools.count(1):
3053
#totalFrags = random.randrange(1, 2**16 - 1)
@@ -33,7 +56,7 @@ def main():
3356
requestBuffer = Buffer(['a' * t.dataPerFragment() for j in range(totalFrags)])
3457
responseBuffer = Buffer()
3558
start = gettime()
36-
r = t.clientSend(TEST_ADDRESS, requestBuffer, responseBuffer)
59+
r = t.clientSend(s, requestBuffer, responseBuffer)
3760
r.getReply()
3861
elapsedNs = gettime() - start
3962
resp = responseBuffer.getRange(0, responseBuffer.getTotalLength())

0 commit comments

Comments
 (0)