replace lua error

error may cause c stack overflow
https://github.com/aarzilli/golua/issues/24
This commit is contained in:
siddontang 2014-09-03 09:03:49 +08:00
parent d9a8da770d
commit 9628817ca4
2 changed files with 8 additions and 0 deletions

View File

@ -93,6 +93,7 @@ Choosing a store database to use is very simple, you have two ways:
+ You must known that changing store database runtime is very dangerous, LedisDB will not guarantee the data validation if you do it. + You must known that changing store database runtime is very dangerous, LedisDB will not guarantee the data validation if you do it.
+ Begin a transaction will block any other write operators before you call `commit` or `rollback`. Don't use long-time transaction. + Begin a transaction will block any other write operators before you call `commit` or `rollback`. Don't use long-time transaction.
+ `pcall` and `xpcall` are not supported in lua, you can see the readme in [golua](https://github.com/aarzilli/golua).
## Configuration ## Configuration

View File

@ -159,6 +159,8 @@ func (app *App) openScript() {
l.OpenTable() l.OpenTable()
l.OpenPackage() l.OpenPackage()
l.Register("error", luaErrorHandler)
s.l = l s.l = l
s.c = newClient(app) s.c = newClient(app)
s.c.db = nil s.c.db = nil
@ -223,6 +225,11 @@ func delMapState(l *lua.State) {
delete(mapState, l) delete(mapState, l)
} }
func luaErrorHandler(l *lua.State) int {
msg := l.ToString(1)
panic(fmt.Errorf(msg))
}
func luaCall(l *lua.State) int { func luaCall(l *lua.State) int {
return luaCallGenericCommand(l) return luaCallGenericCommand(l)
} }