rentzsch.com: tales from the red shed

mach_* 1.1

mach_inject
I released mach_* v1.1 in April, but only announced it to the extendamac-macosx mailing list for the reasons stated in the announcement. I'm now hosting the source myself on my own Subversion server. No public Subversion checkout yet, but you can download the entire source here.

Highlights:

  • New package added: mach_inject_bundle. It has a private subproject: mach_inject_bundle_stub. The stub is a generic reusable implementation of the code that gets squirted across the address spaces, which was always tricky to write. mach_inject_bundle is an embeddable framework that wraps mach_inject and the stub with a simple fire-and-forget API.
  • The 'DisposeWindowBeeperOverride' example is replaced by the 10.4-happy 'DisposeWindow+Beep'.
  • The 'FinderDisposeWindowBeeperInjector' is replaced by 10.4-happy 'DisposeWindow+Beep_Injector'.

You can see exactly what changed here. Basically, mach_inject and mach_override were 10.4-happy but the example broke. SysBeep() apparently requires a full-blown pthread context under 10.4.

Thanks to Jon Gotow for letting me peek at his SCPatch, which I used as a guide for mach_inject_bundle. It saved me a bunch of time. Also thanks to Bob Ippolito for the CALL_ON_LOAD assistance.

Monday, June 13, 2005
12:29 AM