> This causes a leak, I think the trick is to just always call sorflush()
> when the pcb is free'd.
Even this doesn't work.
>
> Looking at linux they still are using gc. I'll give this a lot
> more thought before resubmitting this idea.
Ok, the problem is you have 3 af_unix pairs all open between 2
processes
process B sends 3 over 2 to A
process B sends 2 over 3 to A
process B send 2 and 3 over 1 to A
process B closes 1 2 and 3
A then closes 3 2 and then 1
closing 3 and 2 doesn't cause the socketbuffer to be flushed because
they are still self referencing.
closing 1 causes the socketbuffer to be flushed,
on flushing it comes across 2 and drops a reference but doesn't flush,
it then hits 3 and drops a reference but doesn't flush.
since 3 references 2 and 2 references 3 and nothing else references
2 or 3, we just leaked 2 and 3.
I guess the gc has to stay.
dammit. :)
My apologies for wasting everyone's time here.
--
-Alfred Perlstein - [[EMAIL PROTECTED]|[EMAIL PROTECTED]]
"I have the heart of a child; I keep it in a jar on my desk."
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message