2012-06-29 93 views
0

我希望有人能帮助...ctypes的netsnmp多处理

所以......我正在写一个multiprocessing基于Python netsnmp轮询(我做了很多数据结构操纵我收集数据后,这样这些费用值超过正常的threading)。我找不到一个完整的python界面(具有良好的OID操作,散装等),所以我决定正确的自己的​​绑定。我使用snmp_sess_synch_response()来实际执行查询。

事情工作正常,当我运行单个线程(我可以查询和获得结果)。但是当我从继承的Process实例中调用我的(python)netsnmp类时;当它到达snmp_sess_synch_response()时,线程停止运行,然后返回一个返回码'2',snmp_errstring()返回'未知错误'。

我能找到的唯一信息是我应该使用来自http://net-snmp.sourceforge.net/docs/README.thread.html的单一API,并且最初的MIB构建应该在线程化之前。我正在使用Single API,并且在产生工人之前我正在建立MIB。

没有人有任何想法我应该如何进行调试?多线程如何处理ctypes?为什么使用multiprocessing会导致我的单线程轮询器像这样失速?

我在redhat 6 64位和python 2.6.6上使用net-snmp 5.5-41.el6。

回答

0

原来这是一个关闭我的文件句柄的问题,所以过了一段时间,线程已经耗尽了它的所有句柄,并提示抛出一堆坏的错误。