1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
-*- mode:org -*-
* Requirements:
** lua 5.1 ( http://www.lua.org/ )
** Apache HTTPD 2.2 ( http://httpd.apache.org/ ) or Apache HTTPD 2.3
* Documentation
See docs/README
* Building
For now, see docs/building-from-subversion.txt
* To Consider
Allow definition of lua_State instances associated with arbitrary
pool using the pool's user_data constuct. There would, here, be two
types, pooled and singleton. On the other hand, singleton would work
fine for almost all cases -- the exception being a process or server
pool, and then we could stay singleton anyway and lock around it.
The current "server scope" behavior could, instead, fall into
connection scope, for long-lived connections, really we want thread
scope (which Brian Akins knows how to do). Is there a pool
associated with a thread? Contention on the pool is a pain in a
highly concurrent environment.
Could use apr_thread_data_(get|set) if I can find a way to hook into
thread destruction. Looks like apr threads let you use the standard
APR_POOL_DECLARE_ACCESSOR(thread); defined method, just need to look
up what form that takes. -- apr_thread_pool_get -- just attach to
that pool.
Given that, we can associate a hash of lua_State instances with
arbitrary pools, such as the request pool, thread pool, server pool,
etc. We then use the file as key into the hash. Users, able to
specify the handler function, can then make use of the same file
with different handlers to reuse states.
* Task List
** TODO Use r->file to determine file, doing rewriting in translate_name
** TODO Change to controlling lifecycle by passing in a pool?
Need to determine how to handle server scoped then!
** TODO Provide means to get useful output from lua errors in response body
Probably have to put it on the vm spec for pre-handler errors, as
it is pre-handler, will prolly be on the request_config somewhere,
but sometimes cannot put there, so... fun
** TODO Filters
** TODO Mapping in the server_rec
** TODO Connection scoped vms
** TODO Figure out how reentrancy works regarding filter chain stuff.
Do we need new "threads"?
** TODO Flesh out apw_*getvm for each flavor we allow
** TODO Rework apw_sgetvm to use the create_vm stuff like apw_rgetvm
** TODO apw_rgetvm needs to handle connection scoped vms
** TODO options in server scoped vms (ie, min and max vm counts)
** TODO provide means to implement authn and authz providers
** TODO: Flatten LuaHook* to LuaHook phase file fn ?
** TODO: Lua and ap_expr integration in one or both directions
** TODO: document or remove block sections
** TODO: test per-dir behavior of block sections
** TODO: Catch-up documentation on r: methods
** TODO: 500 errors instead of 404 with AddHandler lua-script
** TODO: Suppress internal details (fs path to scripts, etc) in error responses
* License
Apache License, Version 2.0,
http://www.apache.org/licenses/LICENSE-2.0
See NOTICE file for more information
* Problems and Patches:
Please use dev@httpd.apache.org for discussing mod_lua development
To subscribe send email to dev-subscribe@httpd.apache.org
Note that this is for development discussion, not user support :-)
* Contributors Include
** Brian McCallister
** Paul Querna
** Garrett Rooney
** Martin Traverso
** Brian Akins
** Justin Erenkrantz
** Philip M. Gollucci
|