Theo sách hướng dẫn lua 5.1, lua_xmove
di chuyển các giá trị giữa các ngăn xếp của các luồng khác nhau thuộc cùng một trạng thái Lua. Nhưng, tôi vô tình tình cờ sử dụng nó để di chuyển các giá trị qua các trạng thái Lua khác nhau và nó dường như hoạt động tốt! Có API nào khác để di chuyển các giá trị từ trạng thái Lua này sang trạng thái khác (trong 5.1) hoặc có thể sử dụng lua_xmove
không?lua_xmove giữa các trạng thái lua khác nhau
Trả lời
Lua lưu trữ dữ liệu thu gom rác thải ở trạng thái toàn cầu. Vì vậy, nếu bạn di chuyển các đối tượng GC hoặc chuỗi trên các trạng thái, bạn có khả năng gây nhầm lẫn cho bộ thu gom rác và tạo các tham chiếu treo lơ lửng.
Vì vậy, mặc dù có vẻ như nó hoạt động, nó có thể dễ dàng gây ra các vấn đề sau này.
Để tham khảo, hãy xem this mailing list thread nơi các nhà phát triển thảo luận vấn đề chính xác này.
Lưu ý rằng lua_xmove
không kiểm tra mà các quốc gia toàn cầu đều giống nhau:
api_check(from, G(from) == G(to));
Lưu ý rằng 'api_check' thay đổi hành vi dựa trên các tùy chọn biên dịch thời gian. Xem chương 3 của sách hướng dẫn (ch 4 trong 5.2) và luaconf.h. Tôi tin rằng bản phát hành bình thường của Lua không cho phép kiểm tra API. – RBerteig
Mục đích của kiểm tra api là tinh thể rõ ràng, 'from' phải bằng' to'. – doug65536
Cái gì? Không, 'from' không được bằng' to', điều đó sẽ dẫn đến không có op. Điều gì là đúng là trạng thái toàn cầu (một kết quả từ một lời gọi đến 'lua_newstate()' trong cây trạng thái phải giống nhau cho cả hai đối số. Nói cách khác, cả hai 'to' và' from' là kết quả của một (có thể rỗng) chuỗi các cuộc gọi 'lua_newthread()' bắt nguồn từ một số trạng thái ban đầu 'L'. – BadZen
- 1. Nhân bản trạng thái Lua
- 2. Trạng thái Lua là gì?
- 3. Sự khác nhau giữa cột 'trạng thái' và 'trạng thái' trong bảng sales_flat_order trong Magento
- 4. Sự khác nhau chính xác giữa các trạng thái MEM_RESERVE và MEM_COMMIT là gì?
- 5. Trạng thái Ajax khác nhau cho các thành phần khác nhau trong PrimeFaces
- 6. Đặt Phông chữ khác nhau cho các trạng thái khác nhau của UIButton
- 7. Nền thân máy khác nhau cho các trạng thái Giao diện người dùng khác nhau
- 8. Sự khác nhau giữa trạng thái Chủ đề bị chặn và đang chờ
- 9. componentWillReceiveProps trạng thái khác với trạng thái hiển thị sau khi cập nhật trạng thái redux
- 10. Trạng thái nào được giữ giữa các dòng JavaScript?
- 11. Sự khác biệt giữa. và: trong Lua
- 12. các tệp không có sẵn và git unstaged hiển thị trạng thái khác nhau
- 13. Cách duy trì trạng thái trên các phiên người dùng khác nhau trong ứng dụng vòng
- 14. Spring Boot Rest Điều khiển cách trả về các mã trạng thái HTTP khác nhau?
- 15. Các Python CMS khác nhau và trạng thái của chúng là gì?
- 16. Đơn vị tiểu bang Scala - kết hợp các loại trạng thái khác nhau
- 17. Trạng thái hỗ trợ cho SHA-2 trong các nền tảng khác nhau là gì?
- 18. Tạo ImageButton có hình dạng bất thường với các trạng thái nhấp chuột khác nhau
- 19. Sự khác nhau giữa onResume() và onResumeFragments()
- 20. Trạng thái mức/trạng thái Pygame
- 21. Sự khác biệt giữa [(ngModel)] và [ngModel] cho trạng thái liên kết với thuộc tính?
- 22. Lua - Khôi phục trạng thái của tập lệnh mà không cần sửa lại nó
- 23. Bất kỳ sự khác biệt về hành vi nào từ các bản vẽ trạng thái hơi khác nhau này?
- 24. API Lua C: sự khác nhau giữa lua_gettop() và -1 là gì?
- 25. Mức độ tương tác khác nhau của trạng thái trong haskell
- 26. Om cojurescript: xử lý các thay đổi trạng thái cục bộ trong các thành phần khác nhau
- 27. WPF - Cách thanh lịch vô hiệu hóa và cho phép các điều khiển khác nhau dựa trên các trạng thái khác nhau của Mô hình sử dụng MVVM
- 28. Tôi có thể tìm trạng thái của cổng bằng thư viện Lua "socket" không?
- 29. Xác thực giữa nhiều trường ở các cấp khác nhau
- 30. Sự khác nhau giữa các loại regex
Một trong những cách di chuyển/sao chép Lua đối tượng giữa khác nhau 'Lua States' về chủ đề khác nhau: http://stackoverflow.com/a/9573063/1150918 – Kamiccolo
Tôi đã chọn mã * LuaLanes * và tôi thấy mã đang thực hiện sao chép từ trạng thái này sang trạng thái khác. Cảm ơn. – vyom