Do you have any way of measuring the leakage? I'm willing to believe that we're leaking, but I don't think the thread_set_exception_ports call below is the source of the leakage -- that's in mach_thread_init which is only called once, IIRC.

Good to see some activity here though :)

Cyrus

On Feb 24, 2011, at 12:31 AM, Willem Rein Oudshoorn wrote:
...


will leak 1 port per invocation.  

I suspect that one of the reasons might be:

   ret = thread_set_exception_ports(mach_thread_self(),
                                    EXC_MASK_BAD_ACCESS | EXC_MASK_BAD_INSTRUCTION,
                                    thread_exception_port,
                                    EXCEPTION_DEFAULT,
                                    THREAD_STATE_NONE);

in x86-64-darwin-os.c

Because mach_thread_self() will allocate a send right which is never
deallocated.  

Sorry of being no help, but I might have some time in about a week.

Kind regards,
Wim Oudshoorn


------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in
Real-Time with Splunk. Collect, index and harness all the fast moving IT data
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business
insights. http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
Sbcl-devel mailing list
Sbcl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-devel