I have a c_dll_wrapper class implemented using ctypes which I want to expose via a RpycService. But if I instantiate this C_dll_Wrapper instance in the service class the ThreadedServer aborts as soon as the client makes a call to the function that creates the object of c_dll_wrapper. If I skipe this step everything works fine. any reason?
expected result versus actual result
involved/problematic methods, e.g. __call__
steps to reproduce
for bugs, please attach a
# Below code is when the CDLL_wrapper class was not instantiated; client didn't call server.simulate method
(OJ) C:\asd\CART\BVP\src\Model>python -m bvp_BAF
on_connect (<rpyc.core.protocol.Connection 'conn1' object at 0x0000019805A87190>,)
Rpyc's process_clock_tick
on_disconnect (<rpyc.core.protocol.Connection 'conn1' object at 0x0000019805A87190>,)
on_connect (<rpyc.core.protocol.Connection 'conn2' object at 0x0000019805A94750>,)
Rpyc's process_clock_tick
on_disconnect (<rpyc.core.protocol.Connection 'conn2' object at 0x0000019805A94750>,)
on_connect (<rpyc.core.protocol.Connection 'conn3' object at 0x0000019805A94ED0>,)
Rpyc's process_clock_tick
on_disconnect (<rpyc.core.protocol.Connection 'conn3' object at 0x0000019805A94ED0>,)
# below code with server.simulate called.
(OJ) C:\asd\CART\BVP\src\Model>python -m bvp_BAF
on_connect (<rpyc.core.protocol.Connection 'conn1' object at 0x000001F6A16B3850>,)
<class 'ctypes.c_long'>; memory_size = 0x24A0
<class 'ctypes.c_void_p'>; memory_pointer = 0x1F6A16C1118
<class 'ctypes.c_long'>; memory_log_size = 0xFA0
<class 'ctypes.c_void_p'>; memory_log_pointer = 0x1F6A16C1198
<class 'ctypes.c_long'>; print_log_size = 0x0
<class 'ctypes.c_long'>; capture_log_size = 0x0
<class 'ctypes.c_long'>; exec_log_size = 0x0
<class 'ctypes.c_long'>; num_threads = 0x2
<class 'ctypes.c_long'>; call_interval = 0x0
<class 'ctypes.c_long'>; base_thread = 0x0
<class 'ctypes.c_long'>; ext_scheduler = 0x0
Rpyc's process_clock_tick
(OJ) C:\asd\CART\BVP\src\Model> # see the server aborted for some reason.
I have a c_dll_wrapper class implemented using ctypes which I want to expose via a RpycService. But if I instantiate this C_dll_Wrapper instance in the service class the ThreadedServer aborts as soon as the client makes a call to the function that creates the object of c_dll_wrapper. If I skipe this step everything works fine. any reason?
__call__
Environment
Minimal example
Server:
Client: