David Glasser
David Glasser
Note that the domain of the linked post seems to be down.
OK, I figured out what we're doing. We're calling `Fiber.yield` in a fiber that we don't keep any reference to. So it eventually gets GCd. This causes stack unwinding, which...
So I guess the short answer is, I shouldn't be letting a fiber that I care about get GCed. And in fact, the strategy of using `try { Fiber.yield }...
Also occurs with Node 0.10.13, Fibers 1.0.1.
At the very least, I think doing this should cause your code to crash, not re-run the fiber from the top. We would have figured out what was going on...
Ah, OK. The second call to `Fiber.yield` immediately re-throws the "zombie" exception, so by the time the callback runs, the fiber has completely unwound. And you can run fibers multiple...
Right, I agree that grabbing a reference to the Fiber in `finally` kept it from being GCed. I don't think I was actually using `FiberFuture`, if that's what you meant....
See https://github.com/hjylewis/trashable/pull/7 for a demonstration. I suppose you could say "well, don't trash from a `then` in that particular place" but I'm not sure you can prove that it's impossible...
That sounds scary but maybe it would work.
also, at a high level, most of the stuff in the schema/resolvers pages should ideally be TS-first with codegen! but fine if that's a separate project that comes after "restore...