簡體   English   中英

如何在字節碼虛擬機中使用 libuv

[英]How to use libuv with a bytecode virtual machine

你會如何在字節碼虛擬機中使用 libuv,假設我有這個功能

void vm_run(vm_t* vm);

它啟動虛擬機來執行代碼,只要用戶的代碼這樣做,它就會一直運行,現在我想在語言 VM 中添加異步內容,比如像 JavaScript 一樣的setTimeout / setInterval ,我可以向用戶公開本機函數,但是當實際啟動事件循環, uv_run阻塞,直到沒有事件剩下,VM 也阻塞,直到用戶的代碼結束我將如何一起啟動以保持 VM 執行異步 I/O,我只是在努力理解在這種情況下正確地考慮事件循環的想法,請有人指導我走上正確的道路。

我找到了方法,你必須在正常執行結束時運行 uv 事件循環來處理事件,所以我必須制作一個 API 來隨時運行 VM 中的函數(換句話說,從 vm_run 返回並不意味着所有代碼都是完成我們將進一步執行更多功能)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM