Lines Matching defs:callback
94 while (DPCCallback* callback = fUnusedFunctionCallbacks.RemoveHead())
95 delete callback;
117 FunctionDPCCallback* callback
119 if (callback == NULL)
122 fUnusedFunctionCallbacks.Add(callback);
161 DPCQueue::Add(DPCCallback* callback)
163 // queue the callback, if the queue isn't closed already
169 if (callback->fInQueue != NULL)
173 fCallbacks.Add(callback);
174 callback->fInQueue = this;
192 // get a free callback
195 DPCCallback* callback = fUnusedFunctionCallbacks.RemoveHead();
196 if (callback == NULL)
201 // init the callback
203 = static_cast<FunctionDPCCallback*>(callback);
216 DPCQueue::Cancel(DPCCallback* callback)
220 // If the callback is queued, remove it.
221 if (callback->fInQueue == this) {
222 fCallbacks.Remove(callback);
226 // The callback is not queued. If it isn't in progress, we're done, too.
227 if (callback != fCallbackInProgress)
230 // The callback is currently being executed. We need to wait for it to be
234 // there are multiple threads trying to cancel the callback at the same
253 DPCQueue::Recycle(FunctionDPCCallback* callback)
256 fUnusedFunctionCallbacks.Insert(callback, false);
273 // get the next pending callback
274 DPCCallback* callback = fCallbacks.RemoveHead();
275 if (callback == NULL) {
289 callback->fInQueue = NULL;
290 fCallbackInProgress = callback;
292 // call the callback
294 callback->DoDPC(this);
299 // wake up threads waiting for the callback to be done