Próbuję użyć v8 z C++ wewnątrz wątku, który nie jest głównym wątku. W przypadku V8 nie ma wielowątkowości, wszystkie obiekty v8 są tworzone i niszczone w tym wątku. Nic nie działa równolegle, nic nie jest udostępniane. Kiedy uruchamiam program z głównego wątku, wszystko działa poprawnie. Kiedy mam rzeczy v8 w innym wątku, otrzymuję błąd segmentacji, gdy tworzę v8 :: HandleScope.Jak używać v8 w wątku?
Nie mogę znaleźć żadnej użytecznej dokumentacji na temat tego, w jaki sposób wątek jest rzeczywiście adresowany przy użyciu wersji 8. Instrukcja "use isolates and lockers" pojawia się często podczas wyszukiwania, ale nie mogę znaleźć żadnych przykładów, jak to zrobić. Jest ten dokument API na v8 :: Isolate, ale nic na tej stronie nie mówi mi, czy potrzebuję ich w moim konkretnym przypadku (nie dzielę się pamięcią ani nie wykonuję równolegle). Dokumenty na v8 :: Locker() nie mają nawet informacji o tym, do czego służy klasa. Dołączone próbki do projektu również nie zajmują się tym.
więc moje pytania są ...
- Czy muszę używać izolatów i/lub szafki tutaj?
- Czy mogę uzyskać minimalny przykład, jak z nich korzystać? Nawet pseudo-kod lub coś byłoby naprawdę przydatne