Lines Matching refs:closure

29         // closure is NULL when thread pool is being destroyed
34 const Closure closure = *pClosure;
37 ClosureKind kind = closure.mKind;
38 void *context1 = closure.mContext1;
39 void *context2 = closure.mContext2;
40 int parameter1 = closure.mParameter1;
44 ClosureHandler_ppi handler_ppi = closure.mHandler.mHandler_ppi;
51 ClosureHandler_ppii handler_ppii = closure.mHandler.mHandler_ppii;
53 int parameter2 = closure.mParameter2;
59 ClosureHandler_piipp handler_piipp = closure.mHandler.mHandler_piipp;
61 int parameter2 = closure.mParameter2;
62 void *context3 = closure.mContext3;
228 // release the closure circular buffer
247 // Enqueue a closure to be executed later by a worker thread.
255 Closure *closure = (Closure *) malloc(sizeof(Closure));
256 if (NULL == closure) {
259 closure->mKind = kind;
262 closure->mHandler.mHandler_ppi = (ClosureHandler_ppi)handler;
265 closure->mHandler.mHandler_ppii = (ClosureHandler_ppii)handler;
268 closure->mHandler.mHandler_piipp = (ClosureHandler_piipp)handler;
271 SL_LOGE("ThreadPool_add() invalid closure kind %d", kind);
274 closure->mContext1 = context1;
275 closure->mContext2 = context2;
276 closure->mContext3 = context3;
277 closure->mParameter1 = parameter1;
278 closure->mParameter2 = parameter2;
286 free(closure);
294 // if closure circular buffer is full, then wait for it to become non-full
305 free(closure);
311 *oldRear = closure;
326 // Called by a worker thread when it is ready to accept the next closure to execute
340 // if closure circular buffer is empty, then wait for it to become non-empty
348 // dequeue the closure at front of circular buffer