diff options
author | Jan Mercl <0xjnml@gmail.com> | 2017-07-07 17:45:24 +0200 |
---|---|---|
committer | Jan Mercl <0xjnml@gmail.com> | 2017-07-07 17:45:24 +0200 |
commit | a46bafc8c8bdbf52b6880b4183651971650d0881 (patch) | |
tree | da42e8de90bd590f609784b51ba9dc28c4f6d7ef /internal/threadtest4/threadtest4_linux_amd64.go | |
parent | 3f755c812f6e5fbcbf2ffd8c3ec394f1d4a53f13 (diff) |
Partially fix TestThread4.
modified: generator.go
modified: internal/sqlite.org/sqlite-src-3190300/test/threadtest1.c
new file: internal/sqlite.org/sqlite-src-3190300/test/threadtest4.c
modified: internal/threadtest1/threadtest1_linux_amd64.go
modified: internal/threadtest4/threadtest4_linux_amd64.go
modified: z_linux_test.go
Diffstat (limited to 'internal/threadtest4/threadtest4_linux_amd64.go')
-rw-r--r-- | internal/threadtest4/threadtest4_linux_amd64.go | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/internal/threadtest4/threadtest4_linux_amd64.go b/internal/threadtest4/threadtest4_linux_amd64.go index d8e4f9d..1819620 100644 --- a/internal/threadtest4/threadtest4_linux_amd64.go +++ b/internal/threadtest4/threadtest4_linux_amd64.go @@ -257,7 +257,7 @@ _33: // Run a SQL statements. Panic if unable. func _run_sql(tls *crt.TLS, _p *XWorkerInfo, _zFormat *int8, args ...interface{}) { - var _rc, _nRetry int32 + var _rc, _i, _nRetry int32 var _zSql *int8 var _pStmt unsafe.Pointer var _ap []interface{} @@ -267,35 +267,46 @@ func _run_sql(tls *crt.TLS, _p *XWorkerInfo, _zFormat *int8, args ...interface{} _zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap) _ap = nil _check_oom(tls, (unsafe.Pointer)(_zSql)) + _i = i32(0) +_0: + if _i >= i32(1000) { + goto _3 + } _rc = bin.Xsqlite3_prepare_v2(tls, (*bin.Xsqlite3)(_p.X4), _zSql, i32(-1), &_pStmt, nil) + if _rc == i32(0) { + goto _3 + } + _i += 1 + goto _0 +_3: if _rc != i32(0) { crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(991), _rc, bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_p.X4)), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_p.X4))), unsafe.Pointer(_zSql)) crt.Xexit(tls, i32(1)) } _worker_trace(tls, _p, str(1036), unsafe.Pointer(_zSql)) -_1: +_6: if store1(&_rc, bin.Xsqlite3_step(tls, _pStmt)) == i32(101) { - goto _2 + goto _7 } if (_rc&i32(255)) != i32(5) && (_rc&i32(255)) != i32(6) { - goto _4 + goto _9 } bin.Xsqlite3_reset(tls, _pStmt) _nRetry += 1 if _nRetry < i32(10) { _worker_trace(tls, _p, str(1049), _nRetry, unsafe.Pointer(_zSql)) crt.Xsched_yield(tls) - goto _1 + goto _6 } crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1067), _p.X0, unsafe.Pointer(_zSql)) crt.Xexit(tls, i32(1)) -_4: +_9: if _rc != i32(100) { crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(1109), _rc, bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_p.X4)), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_p.X4))), unsafe.Pointer(_zSql)) crt.Xexit(tls, i32(1)) } - goto _1 -_2: + goto _6 +_7: bin.Xsqlite3_free(tls, (unsafe.Pointer)(_zSql)) bin.Xsqlite3_finalize(tls, _pStmt) } @@ -486,7 +497,7 @@ _4: // Prepare a single SQL query func _prep_sql(tls *crt.TLS, _db unsafe.Pointer, _zFormat *int8, args ...interface{}) (r0 unsafe.Pointer) { - var _rc int32 + var _rc, _i int32 var _zSql *int8 var _pStmt unsafe.Pointer var _ap []interface{} @@ -495,7 +506,18 @@ func _prep_sql(tls *crt.TLS, _db unsafe.Pointer, _zFormat *int8, args ...interfa _zSql = bin.Xsqlite3_vmprintf(tls, _zFormat, _ap) _ap = nil _check_oom(tls, (unsafe.Pointer)(_zSql)) + _i = i32(0) +_0: + if _i >= i32(1000) { + goto _3 + } _rc = bin.Xsqlite3_prepare_v2(tls, (*bin.Xsqlite3)(_db), _zSql, i32(-1), &_pStmt, nil) + if _rc == i32(0) { + goto _3 + } + _i += 1 + goto _0 +_3: if _rc != i32(0) { crt.Xfprintf(tls, (*crt.XFILE)(Xstderr), str(991), _rc, bin.Xsqlite3_extended_errcode(tls, (*bin.Xsqlite3)(_db)), unsafe.Pointer(bin.Xsqlite3_errmsg(tls, (*bin.Xsqlite3)(_db))), unsafe.Pointer(_zSql)) crt.Xexit(tls, i32(1)) |