(&mut self)
| 898 | |
| 899 | impl Drop for LocalGuard { |
| 900 | fn drop(&mut self) { |
| 901 | if let Some(local_data) = self.local.upgrade() { |
| 902 | // Remove from map while holding the lock, but drop the value |
| 903 | // outside the lock to prevent deadlock if __del__ accesses _local |
| 904 | let removed = local_data.data.lock().remove(&self.thread_id); |
| 905 | drop(removed); |
| 906 | } |
| 907 | } |
| 908 | } |
| 909 | |
| 910 | // Shared data structure for Local |