El Sat, Sep 15, 2007 at 01:40:00AM +0300 Heikki Orsila ha dit: > Consider a simple embedded system: > > void interrupt_handler(void) > { > ... > } > > int main(void) > { > ... > } > > I would like to "emulate" this system with a workstation to make > development faster. I would create two threads, one executing the > main() function, and the other occasionally calling interrupt_handler(). > Before interrupt_handler() is called, the main() thread should be > stopped asynchronously. > > I looked into pthreads documentation and found only pthread_kill(thread, > SIGTSTP) to do asynchronous stop, but then I also have to play terminal > tricks to avoid problems.. > > Is there are function to just disable scheduling of a single thread > without having other side-effects (such as terminal stuff)? Functions > like pthread_disable_scheduling(thread) and > pthread_enable_scheduling(thread) would be good for this..
i wonder if assigning a real time priority with pthread_setschedparam() to the caller of your interrupt_handler() function would solve your problem. this way the main() thread is never scheduled when the interrupt_handler() thread is runnable. interrupt_handler() should be as short as possible, otherwise you risk starving of the rest of your systems processes. -- Matthias Kaehlcke Linux Application Developer Barcelona Representation of the world, like the world itself, is the work of men; they describe it from their own point of view, which they confuse with the absolute truth (Simone de Beauvoir) .''`. using free software / Debian GNU/Linux | http://debian.org : :' : `. `'` gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/