--- seq_memory.c 2003-05-30 15:40:18.000000000 +0200 +++ seq_memory.c.old 2003-05-30 15:42:46.000000000 +0200 @@ -1,3 +1,4 @@ +#define __NO_VERSION__ /* * ALSA sequencer Memory Manager * Copyright (c) 1998 by Frank van de Pol @@ -235,7 +236,18 @@ while (pool->free == NULL && ! nonblock && ! pool->closing) { spin_unlock(&pool->lock); +#ifdef LINUX_2_2 + /* change semaphore to allow other clients + to access device file */ + if (file) + up(&semaphore_of(file)); +#endif interruptible_sleep_on(&pool->output_sleep); +#ifdef LINUX_2_2 + /* restore semaphore again */ + if (file) + down(&semaphore_of(file)); +#endif spin_lock(&pool->lock); /* interrupted? */ if (signal_pending(current)) {