call: separate function invocation from result encoding
The iproto subsystem switches between two output buffers once in a while in order to reclaim memory so passing a pointer to the output buffer directly to box_process_call() or box_process_eval() is incorrect in case the called function yields. To fix that, let's make these functions return the CALL/EVAL result in a port object, which then can then be encoded in msgpack with port_dump(). Needed for #946
Showing
- src/box/call.c 10 additions, 37 deletionssrc/box/call.c
- src/box/call.h 2 additions, 3 deletionssrc/box/call.h
- src/box/iproto.cc 41 additions, 3 deletionssrc/box/iproto.cc
- src/box/lua/call.c 80 additions, 42 deletionssrc/box/lua/call.c
- src/box/lua/call.h 3 additions, 6 deletionssrc/box/lua/call.h
Loading
Please register or sign in to comment