Mercurial Hosting > luan
diff src/luan/modules/http/Http.luan @ 1578:c922446f53aa
immutable threading
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 08 Feb 2021 14:16:19 -0700 |
parents | 153ea3b7afaf |
children | fa066aaa068c |
line wrap: on
line diff
--- a/src/luan/modules/http/Http.luan Sun Jan 31 16:04:39 2021 -0700 +++ b/src/luan/modules/http/Http.luan Mon Feb 08 14:16:19 2021 -0700 @@ -4,6 +4,12 @@ local ipairs = Luan.ipairs or error() local pairs = Luan.pairs or error() local type = Luan.type or error() +local set_metatable = Luan.set_metatable or error() +local get_local_cloned = Luan.get_local_cloned or error() +local set_local_cloned = Luan.set_local_cloned or error() +local get_local_only = Luan.get_local_only or error() +local set_local_only = Luan.set_local_only or error() +local raw_set = Luan.raw_set or error() local Io = require "luan:Io.luan" local Html = require "luan:Html.luan" local Table = require "luan:Table.luan" @@ -29,6 +35,26 @@ local Http = {} +local mt = {} +function mt.__index(tbl,key) + if key=="error_priority" then + return get_local_cloned(tbl,key) + elseif key=="request" or key=="response" then + return get_local_only(tbl,key) + else + return nil + end +end +function mt.__new_index(tbl,key,value) + if key=="error_priority" then + set_local_cloned(tbl,key,value) + elseif key=="request" or key=="response" then + set_local_only(tbl,key,value) + else + raw_set(tbl,key,value) + end +end +set_metatable(Http,mt) local old_java_to_table_shallow = Table.java_to_table_shallow or error()