Xin Chen created PROTON-1709:
--------------------------------
Summary: Python binding: ApplicationEvent causing memory growth
Key: PROTON-1709
URL: https://issues.apache.org/jira/browse/PROTON-1709
Project: Qpid Proton
Issue Type: Bug
Components: python-binding
Affects Versions: proton-c-0.18.1
Reporter: Xin Chen
ApplicationEvent creates a new EventType object in the constructor. The
EventType object adds itself to the TYPES dict always, even for the same
typename. There is no way for the application to avoid this by providing an
EventType object directly. Repro code below:
import threading
from proton.reactor import Container, ApplicationEvent, EventInjector
class Program:
def __init__(self, injector):
self.injector = injector
def on_reactor_init(self, event):
event.reactor.selectable(self.injector)
def on_hello(self, event):
print(event.subject)
def on_done(self, event):
event.subject.stop()
e = EventInjector()
r = Container(Program(e))
t = threading.Thread(target=r.run)
t.start()
for i in range(1, 10000000):
e.trigger(ApplicationEvent("hello", subject=str(i)))
e.trigger(ApplicationEvent("done", subject=r))
t.join()
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]