diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-10-29 19:46:57 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-10-29 19:46:57 +0000 |
| commit | 10e7e45ae92d4fe06f70126ed256b87896dbc432 (patch) | |
| tree | f4b03eb252e5517ccb67be3cd8463c10e14e147c /lib/python/Plugins/Extensions | |
| parent | 6bb94cd5b0d8fd3608afe84e8d76aef554a4b401 (diff) | |
| download | enigma2-10e7e45ae92d4fe06f70126ed256b87896dbc432.tar.gz enigma2-10e7e45ae92d4fe06f70126ed256b87896dbc432.zip | |
better solution to add possibility to delete eSocketNotifiers,
eConsoleAppContainers in callback funktions without crash
Diffstat (limited to 'lib/python/Plugins/Extensions')
4 files changed, 8 insertions, 13 deletions
diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp index da7bc5f2..1add04ab 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp @@ -91,9 +91,9 @@ eServiceDVD::eServiceDVD(const char *filename): m_subtitle_widget(0), m_state(stIdle), m_current_trick(0), - m_sn(eApp, ddvd_get_messagepipe_fd(m_ddvdconfig), eSocketNotifier::Read|eSocketNotifier::Priority|eSocketNotifier::Error|eSocketNotifier::Hungup), m_pump(eApp, 1) { + m_sn = eSocketNotifier::create(eApp, ddvd_get_messagepipe_fd(m_ddvdconfig), eSocketNotifier::Read|eSocketNotifier::Priority|eSocketNotifier::Error|eSocketNotifier::Hungup); std::string aspect; eDebug("SERVICEDVD construct!"); // create handle @@ -111,7 +111,7 @@ eServiceDVD::eServiceDVD(const char *filename): ddvd_set_video(m_ddvdconfig, DDVD_16_9, DDVD_PAL); ddvd_set_lfb(m_ddvdconfig, (unsigned char *)m_pixmap->surface->data, 720, 576, 4, 720*4); - CONNECT(m_sn.activated, eServiceDVD::gotMessage); + CONNECT(m_sn->activated, eServiceDVD::gotMessage); CONNECT(m_pump.recv_msg, eServiceDVD::gotThreadMessage); strcpy(m_ddvd_titlestring,""); m_cue_pts = 0; diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h index bdec4836..12e21d2f 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.h @@ -118,7 +118,7 @@ private: char m_ddvd_titlestring[96]; - eSocketNotifier m_sn; + ePtr<eSocketNotifier> m_sn; eFixedMessagePump<int> m_pump; pts_t m_cue_pts; diff --git a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp index 36ce9f40..673b525c 100644 --- a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp +++ b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.cpp @@ -129,7 +129,7 @@ int eSocketMMIHandler::send_to_mmisock( void* buf, size_t len) } eSocketMMIHandler::eSocketMMIHandler() - :buffer(512), connfd(-1), connsn(0), sockname("/tmp/mmi.socket"), name(0) + :buffer(512), connfd(-1), sockname("/tmp/mmi.socket"), name(0) { memset(&servaddr, 0, sizeof(struct sockaddr_un)); servaddr.sun_family = AF_UNIX; @@ -154,7 +154,7 @@ eSocketMMIHandler::eSocketMMIHandler() else if (listen(listenfd, 0) == -1) eDebug("[eSocketMMIHandler] listen (%m)"); else { - listensn = new eSocketNotifier( eApp, listenfd, POLLIN ); + listensn = eSocketNotifier::create( eApp, listenfd, POLLIN ); listensn->start(); CONNECT( listensn->activated, eSocketMMIHandler::listenDataAvail ); eDebug("[eSocketMMIHandler] created successfully"); @@ -186,7 +186,7 @@ void eSocketMMIHandler::listenDataAvail(int what) else if (fcntl(connfd, F_SETFL, val | O_NONBLOCK) == -1) eDebug("[eSocketMMIHandler] F_SETFL (%m)"); else { - connsn = new eSocketNotifier( eApp, connfd, POLLIN|POLLHUP|POLLERR ); + connsn = eSocketNotifier::create( eApp, connfd, POLLIN|POLLHUP|POLLERR ); CONNECT( connsn->activated, eSocketMMIHandler::connDataAvail ); return; } @@ -294,11 +294,7 @@ void eSocketMMIHandler::closeConn() close(connfd); connfd=-1; } - if ( connsn ) - { - delete connsn; - connsn=0; - } + connsn=0; if ( name ) { delete [] name; @@ -309,7 +305,6 @@ void eSocketMMIHandler::closeConn() eSocketMMIHandler::~eSocketMMIHandler() { closeConn(); - delete listensn; unlink(sockname); } diff --git a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h index ebba9a62..063e1d54 100644 --- a/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h +++ b/lib/python/Plugins/Extensions/SocketMMI/src/socket_mmi.h @@ -16,7 +16,7 @@ class eSocketMMIHandler: public Object eIOBuffer buffer; int listenfd, connfd, clilen; struct sockaddr_un servaddr; - eSocketNotifier *listensn, *connsn; + ePtr<eSocketNotifier> listensn, connsn; void listenDataAvail(int what); void connDataAvail(int what); void closeConn(); |
