diff options
author | Mike Pall <mike> | 2012-11-07 23:20:50 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2012-11-07 23:20:50 +0100 |
commit | 74feb2534c20482ba3e69b4796b49481c3658de0 (patch) | |
tree | 372a2cba9ba5d98c135c0c6b6f2bd231a7a175a9 | |
parent | 2156925b9b7dc9758d3d490f107025615a24b85f (diff) | |
download | luajit2-74feb2534c20482ba3e69b4796b49481c3658de0.tar.gz |
FFI: Clarify callback docs.
-rw-r--r-- | doc/ext_ffi_semantics.html | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/doc/ext_ffi_semantics.html b/doc/ext_ffi_semantics.html index c2107663..bf9f9bee 100644 --- a/doc/ext_ffi_semantics.html +++ b/doc/ext_ffi_semantics.html @@ -943,9 +943,10 @@ C function is blacklisted for compilation. <p> However, this heuristic may fail under specific circumstances: e.g. a message polling function might not run Lua callbacks right away and the call -gets JIT-compiled. If it later happens to call back into Lua, you'll get a -VM PANIC with the message <tt>"bad callback"</tt>. Then you'll need to -manually turn off JIT-compilation with +gets JIT-compiled. If it later happens to call back into Lua (e.g. a rarely +invoked error callback), you'll get a VM PANIC with the message +<tt>"bad callback"</tt>. Then you'll need to manually turn off +JIT-compilation with <a href="ext_jit.html#jit_onoff_func"><tt>jit.off()</tt></a> for the surrounding Lua function that invokes such a message polling function (or similar). @@ -1038,9 +1039,9 @@ of existing C APIs. E.g. callback performance is irrelevant for a GUI application, which waits for user input most of the time, anyway. </p> <p> -For new designs <b>avoid push-style APIs</b> (C function repeatedly -calling a callback for each result). Instead <b>use pull-style APIs</b> -(call a C function repeatedly to get a new result). Calls from Lua +For new designs <b>avoid push-style APIs</b>: a C function repeatedly +calling a callback for each result. Instead <b>use pull-style APIs</b>: +call a C function repeatedly to get a new result. Calls from Lua to C via the FFI are much faster than the other way round. Most well-designed libraries already use pull-style APIs (read/write, get/put). </p> |