author | mickeyl <mickeyl> | 2003-03-02 22:53:10 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-03-02 22:53:10 (UTC) |
commit | affe85499e4650076bcd6058c18ba44d9a6117be (patch) (unidiff) | |
tree | b787f542e183b58d9f2b75f376f3c3bc5d5fa3d3 | |
parent | ab5f21907fb482d35f8aebe4505e954d3c22f3c7 (diff) | |
download | opie-affe85499e4650076bcd6058c18ba44d9a6117be.zip opie-affe85499e4650076bcd6058c18ba44d9a6117be.tar.gz opie-affe85499e4650076bcd6058c18ba44d9a6117be.tar.bz2 |
fix "segfault-on-close" bug
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 13 |
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 | ||
141 | void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) | 136 | void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) |