29 items
TurboModule Spec Codegen Naming
Code QuizBridgeless Mode Internals
QuizNew Architecture: Fabric, TurboModules, JSI
Slides / VideoBridgeless Mode and JSI Pillars
FlashcardBridge Async vs JSI Sync Calls
Code QuizBridge vs New Architecture Communication
QuizBridge vs New Architecture
FlashcardBridge vs New Architecture
Slides / VideoTurboModule Callback Threading Bug
Code QuizJSI vs Bridge and Threading Model
QuizTurboModule Spec Definition Bug
Code QuizBridge vs. New Architecture
QuizBridge vs New Architecture Internals
Slides / VideoBridge vs. New Architecture
Slides / VideoBridge vs. New Architecture Internals
FlashcardBridge vs. New Architecture
FlashcardTurboModule Spec Codegen Naming
Code QuizJSI's Role in the New Architecture
QuizNew Architecture Explained
Slides / VideoNew Architecture: Fabric, TurboModules, JSI, Hermes
FlashcardFabric Shadow Tree & Concurrent Rendering
QuizFabric Rendering Pipeline Phases
FlashcardFabric Rendering Pipeline Internals
Slides / VideoNew Architecture: JSI, TurboModules, Fabric
Slides / VideoJSI, TurboModules, and Fabric Roles
QuizNew Architecture: JSI, TurboModules, Fabric
FlashcardOld Architecture Bridge Costs
QuizThe Old Architecture Bridge Costs
FlashcardThe Old Architecture: Bridge & Serialization Costs
Slides / VideoTurboModule Callback Threading Bug
A C++ TurboModule invokes a JS callback from a background thread and crashes — spot why.
// C++ TurboModule method exposed via JSI
void NativeFileModule::readFile(jsi::Runtime &rt, jsi::String path, jsi::Function callback) {
auto cb = std::make_shared<jsi::Function>(std::move(callback));
std::string p = path.utf8(rt);
// Do blocking I/O off the JS thread
std::thread([this, &rt, cb, p]() {
std::string contents = performBlockingRead(p); // heavy work
// Deliver the result back to JavaScript
cb->call(rt, jsi::String::createFromUtf8(rt, contents));
}).detach();
}This module intermittently crashes with heap corruption or a runtime assertion. What is the bug?