[PD-dev] 0.43 startup procedure and vwait WAS: [PATCH 06/10] fixed race-condition in the audio/midi API initialization
Hans-Christoph Steiner
hans at at.or.at
Thu Jul 15 17:59:34 CEST 2010
On Jul 15, 2010, at 11:07 AM, IOhannes zmölnig wrote:
> On 07/15/2010 04:46 PM, Hans-Christoph Steiner wrote:
>>
>>
>> The vwait timeout would not be needed if we can rely on 'pd' to
>> actually
>> fully die when it exits/crashes. On Mac OS X at least it is often
>> doesn't completely crash and the process just sits there doing who
>> knows
>> what. If this happens on startup, pd-gui's exec call will not
>> return,
>> and pdtk_pd_startup won't be called and pd-gui will just sit and wait
>> forever, giving us a zombie pd-gui. The vwait stuff wouldn't be
>> needed
>> if we can rely of pd to exit completely on all platforms. Just
>> removing
>> the vwait stuff is just replacing one problem with another.
>
> sure.
> i'm only talking about the race-condition.
> whether the vwait is there for other things is entirely beyond my
> scope.
>
> iirc, this is the title of this thread as well.
So you were seeing something like Tcl/pd-gui pegging the CPU when
getting stuck in a loop? Or was it that pd-gui was sitting there
waiting doing nothing?
>> Relax, no one is suggesting fixing a race condition with a
>> timeout. Can
>> you describe how to reproduce the race condition? What's actually
>> racing? Did Miller's changes fix it?
>
> i did not experience any problem with miller's changes so far (which
> does not mean that the race-condition is gone, it just didn't show up)
>
> racing was between pd-gui and pd: if the latter was to late, either
> pd-gui would timeout or the media menu would be initialized wrongly
> (no
> audio/midi APIs available)
Ok, so you made this happen by having pd start jackd? I am trying to
figure out how to reproduce it so I can tell what's happening.
> leaving all this aside, i still think that it is a good idea for Pd to
> be able to change the dynamic entries of the menu at any time.
> if the available APIs change, Pd could update the menu accordingly
> (sounds like a stupid idea? but if jackd is running, then the only
> really available API would be jack (OSS, ALSA, portaudio being all
> blocked by jackd; ich jackd stops, other APIs would become available
> again)
That sounds good to me too, though I don't think that having jackd
running should hide the other Audio options. Just because jackd is
running doesn't mean that the user might want to switch to ALSA. Or
am I missing some annoying technical detail?
.hc
----------------------------------------------------------------------------
Terrorism is not an enemy. It cannot be defeated. It's a tactic.
It's about as sensible to say we declare war on night attacks and
expect we're going to win that war. We're not going to win the war on
terrorism. - retired U.S. Army general, William Odom
More information about the Pd-dev
mailing list