-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SC: Implement the core functionalities of sync calls #1251
base: sync_call
Are you sure you want to change the base?
Conversation
@@ -26,17 +26,21 @@ struct platform_timer { | |||
callback still execute if the timer expires and stop() is called nearly simultaneously. | |||
However, set_expiration_callback() is synchronized with the callback. | |||
*/ | |||
void set_expiration_callback(void(*func)(void*), void* user) { | |||
void set_expiration_callback(void(*func)(void*), void* user, bool appending = false) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the approach is deemed OK, I will replace this default parameter with regular parameter, and define an enum for the boolean, like {multi_callbacks_allowed, multi_callbacks_disallowed}
.
|
||
execute(context, bkend, exec_ctx, wasm_alloc, fn); | ||
} | ||
|
||
void apply(apply_context& context) override { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will refactor apply
to reuse the new execute
method.
…nc_call entry point
…th sync_call_context to better reflect what they are and make sync_call_context fit into apply_context better
This PR implements the core functionalities of sync calls, in particular the
call
host function. The Unit tests show basic call flows are working:Notes for reviewing:
libraries/chain/webassembly/sync_call.cpp
,libraries/chain/apply_context.cpp
andlibraries/chain/webassembly/runtimes/eos-vm.cpp
to revieweosvm-oc
not working yet. very minor OC tweaks to allow for nested Executor execution #1043 (sync call unit tests skip eosvm-oc)transaction_checktime_timer
related changes are correctiterator_cache
inapply_context
after a sync call #1252Resolves #1214