luaur_vm/functions/
lua_e_freethread.rs1use crate::functions::freestack::freestack;
5use crate::functions::lua_m_freegco::luaM_freegco_;
6use crate::records::lua_page::lua_Page;
7use crate::type_aliases::lua_state::lua_State;
8
9#[allow(non_snake_case)]
10pub unsafe fn luaE_freethread(L: *mut lua_State, L1: *mut lua_State, page: *mut lua_Page) {
11 let g = (*L).global;
12 if let Some(userthread) = (*g).cb.userthread {
13 userthread(core::ptr::null_mut(), L1);
14 }
15
16 freestack(L, L1);
17 luaM_freegco_(
18 L,
19 L1 as *mut crate::records::gc_object::GCObject,
20 core::mem::size_of::<lua_State>(),
21 (*L1).hdr.memcat,
22 page,
23 );
24}
25
26#[allow(unused_imports)]
27pub use luaE_freethread as lua_e_freethread;