Changeset 18340 for lang/c/mpio/trunk/mp/iothreads/listen.h
- Timestamp:
- 08/27/08 22:02:39 (4 months ago)
- Files:
-
- 1 modified
-
lang/c/mpio/trunk/mp/iothreads/listen.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/c/mpio/trunk/mp/iothreads/listen.h
r18311 r18340 30 30 31 31 struct listener { 32 private:32 private: 33 33 class listen_thread : public pthread_thread<listen_thread> { 34 34 public: … … 43 43 if(errno == EINTR || errno == EAGAIN) { continue; } 44 44 // FIXME 45 throw std::runtime_error("socket broken"); 46 } else if(sock == 0) { 47 // FIXME 48 throw std::runtime_error("socket broken"); 45 49 } 46 50 iothreads::submit(m_callback, m_obj, sock); … … 56 60 }; 57 61 58 public:62 public: 59 63 template <typename T> 60 static void listen(int lsock, void (*callback)( T*, int fd), T* obj)64 static void listen(int lsock, void (*callback)(void*, int fd), T* obj) 61 65 { 62 66 iothreads::manager::add_thread<listen_thread>(lsock, 63 reinterpret_cast<void (*)(void*,int)>(callback), 64 reinterpret_cast<void*>(obj)); 67 callback, reinterpret_cast<void*>(obj)); 65 68 } 66 69 67 private:70 private: 68 71 listener(); 69 72 }; … … 71 74 72 75 template <typename T> 73 inline void listen(int lsock, void (*callback)( T*, int fd), T* obj)76 inline void listen(int lsock, void (*callback)(void*, int fd), T* obj) 74 77 { 75 78 listener::listen(lsock, callback, obj);
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)