summaryrefslogtreecommitdiff
path: root/libopie
authorkergoth <kergoth>2002-09-05 18:56:37 (UTC)
committer kergoth <kergoth>2002-09-05 18:56:37 (UTC)
commit3b604a204719a4b45360a9d8685d4bb51a32b9dd (patch) (side-by-side diff)
treebb47316b888c038a0c07373df93e8b2cc853777a /libopie
parent45c33b69ae0eec4868a312dc7eb9f496e10588bd (diff)
downloadopie-3b604a204719a4b45360a9d8685d4bb51a32b9dd.zip
opie-3b604a204719a4b45360a9d8685d4bb51a32b9dd.tar.gz
opie-3b604a204719a4b45360a9d8685d4bb51a32b9dd.tar.bz2
Use SIG_IGN rather than an empty handler to ignore SIG_TSTP.
Diffstat (limited to 'libopie') (more/less context) (show whitespace changes)
-rw-r--r--libopie/odevice.cpp8
-rw-r--r--libopie/odevice.h2
2 files changed, 1 insertions, 9 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 6572fb6..1da8862 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -118,51 +118,45 @@ ODevice::ODevice ( )
void ODevice::init ( )
{
}
ODevice::~ODevice ( )
{
delete d;
}
//#include <linux/apm_bios.h>
//#define APM_IOC_SUSPEND _IO('A',2)
#define APM_IOC_SUSPEND (( 0<<30 ) | ( 'A'<<8 ) | ( 2 ) | ( 0<<16 ))
-
-void ODevice::tstp_sighandler ( int )
-{
-}
-
-
bool ODevice::suspend ( )
{
if ( d-> m_model == OMODEL_Unknown ) // better don't suspend in qvfb / on unkown devices
return false;
int fd;
bool res = false;
if ((( fd = ::open ( "/dev/apm_bios", O_RDWR )) >= 0 ) ||
(( fd = ::open ( "/dev/misc/apm_bios",O_RDWR )) >= 0 )) {
struct timeval tvs, tvn;
- ::signal ( SIGTSTP, tstp_sighandler ); // we don't want to be stopped
+ ::signal ( SIGTSTP, SIG_IGN ); // we don't want to be stopped
::gettimeofday ( &tvs, 0 );
res = ( ::ioctl ( fd, APM_IOC_SUSPEND ) == 0 ); // tell the kernel to "start" suspending
::close ( fd );
if ( res ) {
::kill ( -::getpid ( ), SIGTSTP ); // stop everthing in out process group
do { // wait at most 1.5 sec: either suspend didn't work or the device resumed
::usleep ( 200 * 1000 );
::gettimeofday ( &tvn, 0 );
} while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 1500 );
::kill ( -::getpid ( ), SIGCONT ); // continue everything in our process group
}
diff --git a/libopie/odevice.h b/libopie/odevice.h
index cda504a..5009b91 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -89,23 +89,21 @@ public:
virtual void touchSound ( );
virtual uint hasLeds ( ) const;
virtual OLedState led ( uint which ) const;
virtual bool setLed ( uint which, OLedState st );
virtual ~ODevice ( );
protected:
ODevice ( );
virtual void init ( );
ODeviceData *d;
private:
ODevice ( const ODevice & );
-
- static void tstp_sighandler ( int );
};
#endif