> 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

Reply via email to