At Tue, 25 Jul 2006 18:01:56 -0400, Lee Revell wrote: > > I am writing a driver in which every time some event occurs, two > single-shot timers must be scheduled. This event could happen many > times per second so many of these timers can be pending at once. Can > someone point me to an example of a driver that does something like > this? > > All the ALSA drivers I can find that use timers have a single periodic > timer and use a struct timer_list in the card record. However I think > this is not an option for me, as I must create new timers on the fly. > > I've found that the kernel Oopses if you allocate a timer on the stack, > so I use kmalloc(). It seems to work, but leaks memory, as there's no > opportunity to free() all the timer_lists I'm creating on the fly. > > Can I do this with a single struct timer_list? Is it possible to > schedule multiple timers using add_timer() then changing the parameters > and add_timer() again? > > It seems that this should be documented somewhere but it's not - LDD3 > was no help. All the examples were very simplistic. Can workq be used instead? You can schedule tasks with schedule_delayed_work() with a certain delay. Using workq, the multiple calls wouldn't be no longer problem. Takashi ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel