diff --git a/src/types.rs b/src/types.rs index da45b91..9398871 100644 --- a/src/types.rs +++ b/src/types.rs @@ -23,6 +23,11 @@ pub struct LightUserData(pub *mut c_void); /// reference to a parent `Lua` instance, and thus is managed differently. Though it is more /// difficult to use than the normal handle types, it is Send + Sync + 'static, which means that it /// can be used in many situations where it would be impossible to store a regular handle value. +/// +/// Be warned, If you place this into Lua via a `UserData` type, it is *very easy* to accidentally +/// cause reference cycles that the Lua garbage collector cannot resolve. Instead of placing a +/// `RegistryKey` into a `UserData` type, prefer instead to use `UserData::set_user_value` / +/// `UserData::get_user_value`. pub struct RegistryKey { pub(crate) registry_id: c_int, pub(crate) unref_list: Arc>>>,