Skip to content

Commit

Permalink
Recoomendation from Lennart Poettering:
Browse files Browse the repository at this point in the history
I guess I don't have to mention that, but ALSA_WaitAudio() is
pure evil, and just broken. getpid() returns pids, not tids. You get
those via gettid(). But I'd recommend dropping that entirely. It's
just broken.
  • Loading branch information
slouken committed Oct 19, 2009
1 parent ece8b4d commit 1126121
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 18 deletions.
15 changes: 1 addition & 14 deletions src/audio/alsa/SDL_alsa_audio.c
Expand Up @@ -251,17 +251,7 @@ AudioBootStrap ALSA_bootstrap = {
/* This function waits until it is possible to write a full sound buffer */
static void ALSA_WaitAudio(_THIS)
{
/* Check to see if the thread-parent process is still alive */
{ static int cnt = 0;
/* Note that this only works with thread implementations
that use a different process id for each thread.
*/
if (parent && (((++cnt)%10) == 0)) { /* Check every 10 loops */
if ( kill(parent, 0) < 0 ) {
this->enabled = 0;
}
}
}
/* We're in blocking mode, so there's nothing to do here */
}


Expand Down Expand Up @@ -601,9 +591,6 @@ static int ALSA_OpenAudio(_THIS, SDL_AudioSpec *spec)
}
SDL_memset(mixbuf, spec->silence, spec->size);

/* Get the parent process id (we're the parent of the audio thread) */
parent = getpid();

/* Switch to blocking mode for playback */
SDL_NAME(snd_pcm_nonblock)(pcm_handle, 0);

Expand Down
4 changes: 0 additions & 4 deletions src/audio/alsa/SDL_alsa_audio.h
Expand Up @@ -35,17 +35,13 @@ struct SDL_PrivateAudioData {
/* The audio device handle */
snd_pcm_t *pcm_handle;

/* The parent process id, to detect when application quits */
pid_t parent;

/* Raw mixing buffer */
Uint8 *mixbuf;
int mixlen;
};

/* Old variable names */
#define pcm_handle (this->hidden->pcm_handle)
#define parent (this->hidden->parent)
#define mixbuf (this->hidden->mixbuf)
#define mixlen (this->hidden->mixlen)

Expand Down

0 comments on commit 1126121

Please sign in to comment.