Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add SQL function usleep() to test program tserver.c. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | server-process-edition |
Files: | files | file ages | folders |
SHA3-256: |
8cbe8f2b2fe0a5a246401718da8db8d4 |
User & Date: | dan 2017-07-11 18:38:26.799 |
Context
2017-07-13
| ||
21:06 | Make the freelist format a separate feature from the page-level locking. Freelist format is now configure using "PRAGMA freelist_format". (check-in: dcc407972a user: dan tags: server-process-edition) | |
2017-07-11
| ||
18:38 | Add SQL function usleep() to test program tserver.c. (check-in: 8cbe8f2b2f user: dan tags: server-process-edition) | |
16:47 | Fix a bug causing readonly mvcc connections to read the wrong cache entry in some cases. (check-in: b6157267f9 user: dan tags: server-process-edition) | |
Changes
Changes to tool/tserver.c.
︙ | ︙ | |||
76 77 78 79 80 81 82 83 84 85 86 87 88 89 | static int is_eol(int i){ return (i=='\n' || i=='\r'); } static int is_whitespace(int i){ return (i==' ' || i=='\t' || is_eol(i)); } static void trim_string(const char **pzStr, int *pnStr){ const char *zStr = *pzStr; int nStr = *pnStr; while( nStr>0 && is_whitespace(zStr[0]) ){ zStr++; | > > > > > > > > > > > > > > > | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | static int is_eol(int i){ return (i=='\n' || i=='\r'); } static int is_whitespace(int i){ return (i==' ' || i=='\t' || is_eol(i)); } /* ** Implementation of SQL scalar function usleep(). */ static void usleepFunc( sqlite3_context *context, int argc, sqlite3_value **argv ){ int nUs; sqlite3_vfs *pVfs = (sqlite3_vfs*)sqlite3_user_data(context); assert( argc==1 ); nUs = sqlite3_value_int64(argv[0]); pVfs->xSleep(pVfs, nUs); } static void trim_string(const char **pzStr, int *pnStr){ const char *zStr = *pzStr; int nStr = *pnStr; while( nStr>0 && is_whitespace(zStr[0]) ){ zStr++; |
︙ | ︙ | |||
274 275 276 277 278 279 280 | } static void *handle_client(void *pArg){ char zCmd[32*1024]; /* Read buffer */ int nCmd = 0; /* Valid bytes in zCmd[] */ int res; /* Result of read() call */ int rc = SQLITE_OK; | < > > > > | 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 | } static void *handle_client(void *pArg){ char zCmd[32*1024]; /* Read buffer */ int nCmd = 0; /* Valid bytes in zCmd[] */ int res; /* Result of read() call */ int rc = SQLITE_OK; ClientCtx ctx; memset(&ctx, 0, sizeof(ClientCtx)); ctx.fd = (int)(intptr_t)pArg; ctx.nRepeat = 1; rc = sqlite3_open(zDatabaseName, &ctx.db); if( rc!=SQLITE_OK ){ fprintf(stderr, "sqlite3_open(): %s\n", sqlite3_errmsg(ctx.db)); return 0; } sqlite3_create_function( ctx.db, "usleep", 1, SQLITE_UTF8, (void*)sqlite3_vfs_find(0), usleepFunc, 0, 0 ); while( rc==SQLITE_OK ){ int i; int iStart; int nConsume; res = read(ctx.fd, &zCmd[nCmd], sizeof(zCmd)-nCmd-1); if( res<=0 ) break; |
︙ | ︙ |