jack2/AUTHORS.rst

105 lines
1.6 KiB
ReStructuredText
Raw Normal View History

Authors
#######
(Ordered alphabetically)
Adrian Knoth
Alba Mendez
Alexander Graf
Alexandre Prokoudine
Alexandru Tofan
Andreas Müller
Andrew Kelley
Andrzej Szombierski
Andy Wingo
Anthony Van Groningen
2019-03-26 23:47:48 +02:00
Arnout Diels
Arnaud Rebillout
Arnold Krille
Bernhard M. Wiedemann
Bruno Vernay
Cédric Schieli
Chris Caudle
David Garcia Garzon
David Robillard
David Runge
Deven Lahoti
Devin Anderson
Dmitry Baikov
Edward Betts
Eliot Blennerhassett
Fernando Lopez-Lezcano
Filipe Coelho <falktx@falktx.com>
Florian Faber
Francis Pinteric
Gabriel M. Beddingfield
Gaël Portay
Holger Dehnhardt
Hunter L. Allen
Ian Esten
Jacek Konieczny
Jack O'Quin
James Cowgill
James P. Thomas
Jan Engelhardt
Jaroslav Kysela
Jeremy Hall
John Emmas
Johnny Petrantoni
Jonathan Woithe
Josh Green
Joshua Moyerman
Julien Acroute
Jussi Laako
Juuso Alasuutari
Kai Vehmanen
Karl Lindén
Karsten Wiese
Kim Jeong Yeon
Kjetil S. Matheussen
Lars-Peter Clausen
Lee Revell
Maks Naumov
Marc-Olivier Barre
Mario Lang
Markus Seeber
Matt Flax
2019-04-27 17:47:43 +03:00
Matthias Geier
Maxim Grishin
Melanie Thielker
Michael Voigt
Michał Szymański
Nedko Arnaudov
Olaf Hering
Olivier Humbert
Paul Davis
macOS: Pass JackMachSemaphore send right via mach_msg IPC (#788) * macOS: Pass JackMachSemaphore send right via mach_msg IPC Previously, JackMachSemaphore would communicate the send right for the semaphore object from the server to a client via a named service registered via `bootstrap_register`. However, to do this, it would register the semaphore's port as the service port directly. In theory this ought to be fine, however in practice, macOS `launchd`, which provides the `bootstrap_register` interface, does not correctly detect when such a port becomes dead, and incorrectly believes that the service that it provides is forever alive, even past the end of the `jackd` process' (and therefore the semaphore's) existence. This seems to be *specific* to semaphore ports, as `launchd` is expecting a standard IPC port, owned by the task, not the kernel. This prevents `jackd` from later registering another service with the same name, as `launchd` rejects the registration as conflicting with an active service. To get around this, `jackd` previously added a counter to the end of the named service registrations, allowing old services to remain in the system until the end of the session. To prevent things getting out of hand, this was capped at 98 service registrations for a given semaphore name. This led to #784, in which running a client for the 99th time resulted in the semaphore creation failing and the client failing to connect. As `launchd` outlives multiple runs of `jackd`, this situation persisted across restarts of `jackd`, requiring a restart of the user's session (i.e. a reboot) to fix. An initial attempt at fixing this (see #785) tried passing the port rights directly via shared memory, however mach is too clever for us and foils that plan by having port names be looked up in a per-task table (sensible when you think about it). In this commit, we use mach IPC messages to transfer the send right for the semaphore from the server to the client. By registering a standard IPC port with the bootstrap server, the service registrations are correctly torn down when the ports are destroyed. It works something like this: * Server creates IPC port and registers it globally via `bootstrap_register` * Server listens on IPC port for messages * Client looks up IPC port via `bootstrap_look_up` * Client sends it a message * Server replies with a message containing a send right to the semaphore's port * Client is then free to use the semaphore port as before. This resolves #784. * Improve error handling * Add myself to Authors
2021-08-14 18:24:41 +03:00
Peter Bridgman
Peter L Jones
Pieter Palmers
Ricardo Crudo
Robert Ham
Robin Gareus
Rohan Drape
Romain Moret
Rui Nuno Capela
Samuel Martin
Samuel Tracol
Stefan Schwandter
Stéphane Letz <letz@grame.fr>
Steve Harris
Steven Chamberlain
Taybin Rutkin
Thibault LeMeur
Thomas Brand <tom@trellis.ch>
Thomas Petazzoni
Thom Johansen
Tilman Linneweh
Tim Blechmann
Timo Wischer
Tom Szilagyi
Torben Hohn
Valentin David
Valerio Pilo
Viktor Wilhelmsson
Yasuhiro Fujii
Youri Westerman