| 496 | _E: identity |
| 497 | } |
| 498 | |
| 499 | const fiberIdStore = { id: 0 } |
| 500 | |
| 501 | /** @internal */ |
| 502 | export const getCurrentFiber = (): Fiber.Fiber<any, any> | undefined => (globalThis as any)[currentFiberTypeId] |
| 503 | |
| 504 | /** @internal */ |
| 505 | export class FiberImpl<A = any, E = any> implements Fiber.Fiber<A, E> { |
| 506 | constructor( |
| 507 | context: Context.Context<never>, |
| 508 | interruptible: boolean = true |
| 509 | ) { |
| 510 | this[FiberTypeId] = fiberVariance as any |
| 511 | this.setContext(context) |
| 512 | this.id = ++fiberIdStore.id |
| 513 | this.currentOpCount = 0 |
| 514 | this.interruptible = interruptible |
| 515 | this._stack = [] |
| 516 | this._observers = [] |
| 517 | this._exit = undefined |
| 518 | this._children = undefined |
| 519 | this._interruptedCause = undefined |
| 520 | this._yielded = undefined |
| 521 | this._running = false |
| 522 | this._deferredInterrupt = false |
| 523 | this.runtimeMetrics?.recordFiberStart(this.context) |
| 524 | } |
| 525 | |
| 526 | readonly [FiberTypeId]: Fiber.Fiber.Variance<A, E> |
| 527 | |
| 528 | readonly id: number |
| 529 | interruptible: boolean |
| 530 | currentOpCount: number |
| 531 | readonly _stack: Array<Primitive> |
| 532 | readonly _observers: Array<(exit: Exit.Exit<A, E>) => void> |
| 533 | _exit: Exit.Exit<A, E> | undefined |
| 534 | _children: Set<FiberImpl<any, any>> | undefined |
| 535 | _interruptedCause: Cause.Cause<never> | undefined |
| 536 | _yielded: Exit.Exit<any, any> | (() => void) | undefined |
| 537 | _running: boolean |
| 538 | _deferredInterrupt: boolean |
| 539 | |
| 540 | // set in setContext |
| 541 | context!: Context.Context<never> |
| 542 | currentScheduler!: Scheduler.Scheduler |
| 543 | currentTracerContext: Tracer.Tracer["context"] |
| 544 | currentSpan: Tracer.AnySpan | undefined |
| 545 | currentLogLevel!: LogLevel.LogLevel |
| 546 | minimumLogLevel!: LogLevel.LogLevel |
| 547 | currentStackFrame: StackFrame | undefined |
| 548 | runtimeMetrics: Metric.FiberRuntimeMetricsService | undefined |
| 549 | maxOpsBeforeYield!: number |
| 550 | currentPreventYield!: boolean |
| 551 | |
| 552 | _dispatcher: Scheduler.SchedulerDispatcher | undefined = undefined |
| 553 | get currentDispatcher(): Scheduler.SchedulerDispatcher { |
| 554 | return this._dispatcher ??= this.currentScheduler.makeDispatcher() |
| 555 | } |
nothing calls this directly
no outgoing calls
no test coverage detected
searching dependent graphs…