MCPcopy Create free account
hub / github.com/OpenKinect/libfreenect2 / cancel

Method cancel

src/transfer_pool.cpp:118–141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116}
117
118void TransferPool::cancel()
119{
120 for(TransferQueue::iterator it = transfers_.begin(); it != transfers_.end(); ++it)
121 {
122 int r = libusb_cancel_transfer(it->transfer);
123
124 if(r != LIBUSB_SUCCESS && r != LIBUSB_ERROR_NOT_FOUND)
125 {
126 LOG_ERROR << "failed to cancel transfer: " << WRITE_LIBUSB_ERROR(r);
127 }
128 }
129
130 for(;;)
131 {
132 libfreenect2::this_thread::sleep_for(libfreenect2::chrono::milliseconds(100));
133 size_t stopped_transfers = 0;
134 for(TransferQueue::iterator it = transfers_.begin(); it != transfers_.end(); ++it)
135 stopped_transfers += it->getStopped();
136 if (stopped_transfers == transfers_.size())
137 break;
138 LOG_INFO << "waiting for transfer cancellation";
139 libfreenect2::this_thread::sleep_for(libfreenect2::chrono::milliseconds(1000));
140 }
141}
142
143void TransferPool::setCallback(DataCallback *callback)
144{

Callers 1

stopMethod · 0.80

Calls 5

sleep_forFunction · 0.85
beginMethod · 0.80
endMethod · 0.80
getStoppedMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected