Akio, your derefWeak WHITEHOLE fix looks really weird. I don't
know what the right pattern is, but it seems like asking for trouble
when there are multiple concurrent derefs:
if (info == stg_WHITEHOLE_info) {
("ptr" info) = ccall lockClosure(w "ptr");
unlockClosure(w, info);
}
> addForeignPtrFinalizer retries in this case.This can't be right; a dead weak pointer always stays dead, so won't
this infinite loop?
Now you're asking for it :) I would always be interested in seeing if I
> I haven't got around to looking at this, but I see Edward is on the case
> with some code review. Do you think I should look at it before it goes in?
missed anything.
Cheers,
Edward