Можно ли подделать / взломать Thread Local Storage?

Я нахожусь в некотором затруднении.

У меня есть большое приложение с движком Google V8 javascript. Некоторые вызовы выполняются движку V8 в потоке пользовательского интерфейса. Чтобы быть добрым к пользователю, как все рекомендуют, некоторые длинные операции выполняются в отдельном потоке, без зависания потока пользовательского интерфейса. Тем не менее, эти длительные операции также вызывают обращения к движку JavaScript V8. Таким образом, несколько потоков обращаются к V8.

Дело в том, что V8 использует локальное хранилище потоков. Это, кажется, заставляет мое приложение взорваться случайным образом. Это определенно в классе "Как это возможно работало до сих пор?" ошибок.

Без значительной реорганизации моего приложения я предлагаю ужасный, ужасный и ужасный супер-хак: могу ли я заставить V8 думать, что он работает в другом потоке?

Другими словами, в первый раз, когда я звоню в V8, я записываю ветку. Тогда длявсе остальные звонки на V8Я каким-то образом подделываю поток, чтобы локальное хранилище потока / что-либо еще зависело от потока.

Это можно сделать? Это будет работать? Я глуп, чтобы даже подумать о таком подонке?

Ответы на вопрос(2)

Ваш ответ на вопрос