| 83 | } |
| 84 | |
| 85 | bool TransferPool::submit() |
| 86 | { |
| 87 | if(!enable_submit_) |
| 88 | { |
| 89 | LOG_WARNING << "transfer submission disabled!"; |
| 90 | return false; |
| 91 | } |
| 92 | |
| 93 | size_t failcount = 0; |
| 94 | for(size_t i = 0; i < transfers_.size(); ++i) |
| 95 | { |
| 96 | libusb_transfer *transfer = transfers_[i].transfer; |
| 97 | transfers_[i].setStopped(false); |
| 98 | |
| 99 | int r = libusb_submit_transfer(transfer); |
| 100 | |
| 101 | if(r != LIBUSB_SUCCESS) |
| 102 | { |
| 103 | LOG_ERROR << "failed to submit transfer: " << WRITE_LIBUSB_ERROR(r); |
| 104 | transfers_[i].setStopped(true); |
| 105 | failcount++; |
| 106 | } |
| 107 | } |
| 108 | |
| 109 | if (failcount == transfers_.size()) |
| 110 | { |
| 111 | LOG_ERROR << "all submissions failed. Try debugging with environment variable: LIBUSB_DEBUG=3."; |
| 112 | return false; |
| 113 | } |
| 114 | |
| 115 | return true; |
| 116 | } |
| 117 | |
| 118 | void TransferPool::cancel() |
| 119 | { |
no test coverage detected