Lines Matching refs:p
56 SQLiteThread *p; in sqlite3ThreadCreate() local
65 p = sqlite3Malloc(sizeof(*p)); in sqlite3ThreadCreate()
66 if( p==0 ) return SQLITE_NOMEM_BKPT; in sqlite3ThreadCreate()
67 memset(p, 0, sizeof(*p)); in sqlite3ThreadCreate()
68 p->xTask = xTask; in sqlite3ThreadCreate()
69 p->pIn = pIn; in sqlite3ThreadCreate()
77 rc = pthread_create(&p->tid, 0, xTask, pIn); in sqlite3ThreadCreate()
80 p->done = 1; in sqlite3ThreadCreate()
81 p->pOut = xTask(pIn); in sqlite3ThreadCreate()
83 *ppThread = p; in sqlite3ThreadCreate()
88 int sqlite3ThreadJoin(SQLiteThread *p, void **ppOut){ in sqlite3ThreadJoin() argument
92 if( NEVER(p==0) ) return SQLITE_NOMEM_BKPT; in sqlite3ThreadJoin()
93 if( p->done ){ in sqlite3ThreadJoin()
94 *ppOut = p->pOut; in sqlite3ThreadJoin()
97 rc = pthread_join(p->tid, ppOut) ? SQLITE_ERROR : SQLITE_OK; in sqlite3ThreadJoin()
99 sqlite3_free(p); in sqlite3ThreadJoin()
126 SQLiteThread *p = (SQLiteThread *)pArg; in sqlite3ThreadProc() local
128 assert( p!=0 ); in sqlite3ThreadProc()
136 assert( p->id==GetCurrentThreadId() ); in sqlite3ThreadProc()
138 assert( p->xTask!=0 ); in sqlite3ThreadProc()
139 p->pResult = p->xTask(p->pIn); in sqlite3ThreadProc()
151 SQLiteThread *p; in sqlite3ThreadCreate() local
156 p = sqlite3Malloc(sizeof(*p)); in sqlite3ThreadCreate()
157 if( p==0 ) return SQLITE_NOMEM_BKPT; in sqlite3ThreadCreate()
164 memset(p, 0, sizeof(*p)); in sqlite3ThreadCreate()
166 p->xTask = xTask; in sqlite3ThreadCreate()
167 p->pIn = pIn; in sqlite3ThreadCreate()
168 p->tid = (void*)_beginthreadex(0, 0, sqlite3ThreadProc, p, 0, &p->id); in sqlite3ThreadCreate()
169 if( p->tid==0 ){ in sqlite3ThreadCreate()
170 memset(p, 0, sizeof(*p)); in sqlite3ThreadCreate()
173 if( p->xTask==0 ){ in sqlite3ThreadCreate()
174 p->id = GetCurrentThreadId(); in sqlite3ThreadCreate()
175 p->pResult = xTask(pIn); in sqlite3ThreadCreate()
177 *ppThread = p; in sqlite3ThreadCreate()
184 int sqlite3ThreadJoin(SQLiteThread *p, void **ppOut){ in sqlite3ThreadJoin() argument
189 if( NEVER(p==0) ) return SQLITE_NOMEM_BKPT; in sqlite3ThreadJoin()
190 if( p->xTask==0 ){ in sqlite3ThreadJoin()
193 assert( p->tid==0 ); in sqlite3ThreadJoin()
195 assert( p->id!=0 && p->id!=GetCurrentThreadId() ); in sqlite3ThreadJoin()
196 rc = sqlite3Win32Wait((HANDLE)p->tid); in sqlite3ThreadJoin()
198 bRc = CloseHandle((HANDLE)p->tid); in sqlite3ThreadJoin()
201 if( rc==WAIT_OBJECT_0 ) *ppOut = p->pResult; in sqlite3ThreadJoin()
202 sqlite3_free(p); in sqlite3ThreadJoin()
231 SQLiteThread *p; in sqlite3ThreadCreate() local
236 p = sqlite3Malloc(sizeof(*p)); in sqlite3ThreadCreate()
237 if( p==0 ) return SQLITE_NOMEM_BKPT; in sqlite3ThreadCreate()
238 if( (SQLITE_PTR_TO_INT(p)/17)&1 ){ in sqlite3ThreadCreate()
239 p->xTask = xTask; in sqlite3ThreadCreate()
240 p->pIn = pIn; in sqlite3ThreadCreate()
242 p->xTask = 0; in sqlite3ThreadCreate()
243 p->pResult = xTask(pIn); in sqlite3ThreadCreate()
245 *ppThread = p; in sqlite3ThreadCreate()
250 int sqlite3ThreadJoin(SQLiteThread *p, void **ppOut){ in sqlite3ThreadJoin() argument
253 if( NEVER(p==0) ) return SQLITE_NOMEM_BKPT; in sqlite3ThreadJoin()
254 if( p->xTask ){ in sqlite3ThreadJoin()
255 *ppOut = p->xTask(p->pIn); in sqlite3ThreadJoin()
257 *ppOut = p->pResult; in sqlite3ThreadJoin()
259 sqlite3_free(p); in sqlite3ThreadJoin()