Commit [578362]  Maximize  Restore  History

Fix threads on Darwin 10.8

* We used to pun (64-bit) addresses into 32-bit mach_port_name.

* We used to assume arbitrary 32-bit addresses were always
acceptable mach port names.

* Stop doing that. Instead, allocate small descriptors until one's
address is an acceptable port name (inspired by CCL).

* Also, keep a lock-free free-list of descriptors to skip the previous
loop in common cases.

* There are still some strange issues, but I can't tell if they're new,
and they seem preferable to consistently lose-ing when spawning threads.

Paul Khuong Paul Khuong 2012-08-01

changed src/runtime/darwin-os.c
changed src/runtime/x86-64-darwin-os.c
changed src/runtime/x86-darwin-os.c
src/runtime/darwin-os.c Diff Switch to side-by-side view
src/runtime/x86-64-darwin-os.c Diff Switch to side-by-side view
src/runtime/x86-darwin-os.c Diff Switch to side-by-side view

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks