summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-03-02 22:53:10 (UTC)
committer mickeyl <mickeyl>2003-03-02 22:53:10 (UTC)
commitaffe85499e4650076bcd6058c18ba44d9a6117be (patch) (unidiff)
treeb787f542e183b58d9f2b75f376f3c3bc5d5fa3d3
parentab5f21907fb482d35f8aebe4505e954d3c22f3c7 (diff)
downloadopie-affe85499e4650076bcd6058c18ba44d9a6117be.zip
opie-affe85499e4650076bcd6058c18ba44d9a6117be.tar.gz
opie-affe85499e4650076bcd6058c18ba44d9a6117be.tar.bz2
fix "segfault-on-close" bug
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index dd8a365..09a44e6 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -106,7 +106,7 @@ Wellenreiter::Wellenreiter( QWidget* parent )
106 int flags; 106 int flags;
107 flags = fcntl( daemon_fd, F_GETFL, 0 ); 107 flags = fcntl( daemon_fd, F_GETFL, 0 );
108 fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK ); 108 fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK );
109 QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent ); 109 QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, this );
110 connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) ); 110 connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) );
111 } 111 }
112 112
@@ -124,18 +124,13 @@ Wellenreiter::~Wellenreiter()
124 124
125 delete manufacturerdb; 125 delete manufacturerdb;
126 126
127 // X11-only - Hmm... Closing the socket here segfaults on exit,
128 // Maybe because the notifier still has a handle to it!? Seems not to
129 // occur on Qt/Embedded
130
131 #ifdef QWS
132 if ( daemon_fd != -1 ) 127 if ( daemon_fd != -1 )
133 { 128 {
134 qDebug( "closing comm socket" ); 129 qDebug( "closing comm socket" );
135 close( daemon_fd ); 130 ::shutdown( daemon_fd, 0 );
131 ::close( daemon_fd );
132 qDebug( "comm socket closed." );
136 } 133 }
137 #endif
138
139} 134}
140 135
141void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) 136void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw )