aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMike Pall <mike>2012-11-07 23:20:50 +0100
committerMike Pall <mike>2012-11-07 23:20:50 +0100
commit74feb2534c20482ba3e69b4796b49481c3658de0 (patch)
tree372a2cba9ba5d98c135c0c6b6f2bd231a7a175a9 /doc
parent2156925b9b7dc9758d3d490f107025615a24b85f (diff)
downloadluajit-74feb2534c20482ba3e69b4796b49481c3658de0.tar.gz
luajit-74feb2534c20482ba3e69b4796b49481c3658de0.tar.bz2
luajit-74feb2534c20482ba3e69b4796b49481c3658de0.zip
FFI: Clarify callback docs.
Diffstat (limited to 'doc')
-rw-r--r--doc/ext_ffi_semantics.html13
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&nbsp;function is blacklisted for compilation.
943<p> 943<p>
944However, this heuristic may fail under specific circumstances: e.g. a 944However, this heuristic may fail under specific circumstances: e.g. a
945message polling function might not run Lua callbacks right away and the call 945message polling function might not run Lua callbacks right away and the call
946gets JIT-compiled. If it later happens to call back into Lua, you'll get a 946gets JIT-compiled. If it later happens to call back into Lua (e.g. a rarely
947VM PANIC with the message <tt>"bad callback"</tt>. Then you'll need to 947invoked error callback), you'll get a VM PANIC with the message
948manually turn off JIT-compilation with 948<tt>"bad callback"</tt>. Then you'll need to manually turn off
949JIT-compilation with
949<a href="ext_jit.html#jit_onoff_func"><tt>jit.off()</tt></a> for the 950<a href="ext_jit.html#jit_onoff_func"><tt>jit.off()</tt></a> for the
950surrounding Lua function that invokes such a message polling function (or 951surrounding Lua function that invokes such a message polling function (or
951similar). 952similar).
@@ -1038,9 +1039,9 @@ of existing C&nbsp;APIs. E.g. callback performance is irrelevant for a
1038GUI application, which waits for user input most of the time, anyway. 1039GUI application, which waits for user input most of the time, anyway.
1039</p> 1040</p>
1040<p> 1041<p>
1041For new designs <b>avoid push-style APIs</b> (C&nbsp;function repeatedly 1042For new designs <b>avoid push-style APIs</b>: a C&nbsp;function repeatedly
1042calling a callback for each result). Instead <b>use pull-style APIs</b> 1043calling a callback for each result. Instead <b>use pull-style APIs</b>:
1043(call a C&nbsp;function repeatedly to get a new result). Calls from Lua 1044call a C&nbsp;function repeatedly to get a new result. Calls from Lua
1044to C via the FFI are much faster than the other way round. Most well-designed 1045to C via the FFI are much faster than the other way round. Most well-designed
1045libraries already use pull-style APIs (read/write, get/put). 1046libraries already use pull-style APIs (read/write, get/put).
1046</p> 1047</p>