{"record":{"id":"beaaf9b5aad1515f","repo":"oven-sh/bun","slug":"fixme-todo","errorCode":null,"errorMessage":"FIXME TODO","messagePattern":"FIXME TODO","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/event_loop/MiniEventLoop.rs","lineNumber":424,"sourceCode":"        unsafe { (*self.loop_ptr()).wakeup() };\n    }\n}\n\n// ───────────── EventLoopCtx adapter (bun_io cycle-break) ─────────────────\n// `bun_io::file_poll::Store::put` and friends take an erased `EventLoopCtx`\n// instead of naming `MiniEventLoop`/`VirtualMachine` directly. This crate owns\n// `MiniEventLoop`, so the Mini-side vtable lives here. The Js-side vtable lives\n// in `bun_runtime` (it must name `jsc::VirtualMachine`).\n\nbun_io::link_impl_EventLoopCtx! {\n    Mini for MiniEventLoop => |this| {\n        platform_event_loop_ptr() => (*this).loop_ptr(),\n        // `file_polls_raw` to avoid aliased `&mut MiniEventLoop` while `tick*`\n        // holds `&mut self` across the re-entrant `UwsLoop::tick()` that\n        // reaches this body.\n        file_polls_ptr()  => MiniEventLoop::file_polls_raw(this),\n        // Mini has no pending_unref_counter; the upstream deliberately panics.\n        increment_pending_unref_counter() => panic!(\"FIXME TODO\"),\n        after_event_loop_callback() => (*this).after_event_loop_callback,\n        set_after_event_loop_callback(cb, ctx) => {\n            (*this).after_event_loop_callback = cb;\n            (*this).after_event_loop_callback_ctx = ctx;\n        },\n        pipe_read_scratch() => &raw const *(*this).pipe_read_scratch,\n    }\n}\n\nimpl MiniEventLoop {\n    /// `this` is the per-thread `MiniEventLoop` singleton; the returned ctx\n    /// must not outlive it.\n    #[inline]\n    pub fn as_event_loop_ctx(this: &mut MiniEventLoop) -> bun_io::EventLoopCtx {\n        // SAFETY: `this` is a live `&mut`, so the pointer handed to `new` is\n        // non-null and exclusively borrowed for the call's duration.\n        unsafe { bun_io::EventLoopCtx::new(bun_io::EventLoopCtxKind::Mini, this) }\n    }","sourceCodeStart":406,"sourceCodeEnd":442,"githubUrl":"https://github.com/oven-sh/bun/blob/8c5296ac459e8252d3cd702f3fbcbb0c249d95d5/src/event_loop/MiniEventLoop.rs#L406-L442","documentation":"Error \"FIXME TODO\" thrown in oven-sh/bun.","triggerScenarios":"Thrown at src/event_loop/MiniEventLoop.rs:424 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8c5296ac459e8252d3cd702f3fbcbb0c249d95d5","analyzedAt":"2026-08-16T08:01:58.794Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}