From 4d9e98f694f8c6688b9d38e552c604fe6769700f Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Fri, 24 Jun 2011 21:04:54 +0200 Subject: callagent: Keep the MGCPParser around The parser is using becomeForward: which can be an expensive operation and by keeping the parser around we should avoid this. --- callagent/MGCPCallAgent.st | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/callagent/MGCPCallAgent.st b/callagent/MGCPCallAgent.st index 8532303..788f342 100644 --- a/callagent/MGCPCallAgent.st +++ b/callagent/MGCPCallAgent.st @@ -91,7 +91,7 @@ Object subclass: MGCPCallAgentBase [ ] MGCPCallAgentBase subclass: MGCPCallAgent [ - | transactions | + | transactions parser | @@ -139,11 +139,16 @@ MGCPCallAgentBase subclass: MGCPCallAgent [ ^ ran. ] + parser [ + + ^ parser ifNil: [parser := MGCPParser new] + ] + handleData: aData [ [ | res data id trans | data := aData data copyFrom: 1 to: aData size. - res := MGCPParser new parse: data asString. + res := self parser parse: data asString. id := res transactionId asInteger. trans := sem critical: [transactions copy]. -- cgit v1.2.3