Changeset 759 for trunk/libffado/src/libieee1394/IsoHandler.cpp
- Timestamp:
- 12/15/07 11:36:27 (16 years ago)
- Files:
-
- trunk/libffado/src/libieee1394/IsoHandler.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/src/libieee1394/IsoHandler.cpp
r754 r759 21 21 * 22 22 */ 23 24 //#define PER_HANDLER_THREAD 23 25 24 26 #include "IsoHandler.h" … … 181 183 } 182 184 185 uint64_t poll_enter = m_manager.get1394Service().getCurrentTimeAsUsecs(); 183 186 err = poll(&m_poll_fd, 1, m_poll_timeout); 187 uint64_t poll_exit = m_manager.get1394Service().getCurrentTimeAsUsecs(); 184 188 if (err == -1) { 185 189 if (errno == EINTR) { … … 189 193 return false; 190 194 } 195 uint64_t iter_enter=0; 196 uint64_t iter_exit=0; 191 197 if(m_poll_fd.revents & (POLLIN)) { 192 if(raw1394_loop_iterate(m_handle)) { 198 iter_enter = m_manager.get1394Service().getCurrentTimeAsUsecs(); 199 if(!iterate()) { 193 200 debugOutput( DEBUG_LEVEL_VERBOSE, 194 "IsoHandler (%p): Failed to iterate handler: %s\n", 195 this,strerror(errno)); 196 return false; 197 } 201 "IsoHandler (%p): Failed to iterate handler\n", 202 this); 203 return false; 204 } 205 iter_exit = m_manager.get1394Service().getCurrentTimeAsUsecs(); 198 206 } else { 199 207 if (m_poll_fd.revents & POLLERR) { … … 203 211 debugWarning("hangup on fd for %p\n",this); 204 212 } 213 } 214 debugOutput(DEBUG_LEVEL_VERY_VERBOSE, "(%c %p) poll took %lldus, iterate took %lldus\n", 215 (this->getType()==eHT_Receive?'R':'X'), this, 216 poll_exit-poll_enter, iter_exit-iter_enter); 217 return true; 218 } 219 220 bool 221 IsoHandler::iterate() { 222 if(raw1394_loop_iterate(m_handle)) { 223 debugOutput( DEBUG_LEVEL_VERBOSE, 224 "IsoHandler (%p): Failed to iterate handler: %s\n", 225 this,strerror(errno)); 226 return false; 205 227 } 206 228 return true; … … 257 279 } 258 280 281 #ifdef THREAD_PER_ISOHANDLER 259 282 // create a thread to iterate ourselves 260 283 debugOutput( DEBUG_LEVEL_VERBOSE, "Start thread for %p...\n", this); … … 269 292 return false; 270 293 } 294 #endif 271 295 272 296 // update the internal state