You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the following script, when I set use_class_cb to 1, the script segfaults, but when I set use_class_cb to 0 it does not segfault:
import pvaccess
import time
def func_cb(rec):
monitor.class_cb(rec)
return
class Monitor:
def __init__(self):
self.channel = None
def class_cb(self, rec):
return
monitor = Monitor()
use_class_cb = 1
pvname = "nes:neutrons"
while True:
if monitor.channel is not None:
monitor.channel.stopMonitor()
monitor.channel = pvaccess.Channel(pvname)
if use_class_cb == 1:
# segfaults sometimes
monitor.channel.subscribe("monitor_cb", monitor.class_cb)
else:
# does not segfault
monitor.channel.subscribe("monitor_cb", func_cb)
monitor.channel.startMonitor()
time.sleep(1)
Note: On my setup, nes:neutrons is a PV that updates frequently (multiple times per second). If I point to this PV it crashes within a few seconds. I tried pointing it to a PV that updates less frequently (once per second), and it took longer to crash (a little less than an hour).
The text was updated successfully, but these errors were encountered:
In the following script, when I set use_class_cb to 1, the script segfaults, but when I set use_class_cb to 0 it does not segfault:
Note: On my setup, nes:neutrons is a PV that updates frequently (multiple times per second). If I point to this PV it crashes within a few seconds. I tried pointing it to a PV that updates less frequently (once per second), and it took longer to crash (a little less than an hour).
The text was updated successfully, but these errors were encountered: