You can use signals to handle asynchronous user events. A process (program code) can send a signal to itself that can be handled asynchronously based on the signal handler registered for it. This provides a way to perform tasks in parallel without any complex thread manipulation in the program code.
The following example code demonstrates how a program code sets a signal to itself and how it handles the signal asynchronously in a signal handler:
#include <signal.h>
#include <stdio.h>
void sighandler(int signum)
{
if(signum == SIGUSR1)
{
// Code to perform custom handling
}
else if(signum == SIGUSR2)
{
// Code to perform custom handling
}
}
int main()
{
signal(SIGUSR1,sighandler);
signal(SIGUSR2,sighandler);
// program logic
raise(SIGUSR1); // indicates user event one
// program logic
raise(SIGUSR2); // indicates user event two
// program logic
return 0;
}
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.