summary refs log tree commit diff stats
path: root/lib/pure/nimtracker.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2017-03-14 15:45:35 +0100
committerAraq <rumpf_a@web.de>2017-03-14 15:45:35 +0100
commit98c7bab8eaa3daf872b12984a07b269f548210e4 (patch)
treedee28d6557ad3d2e8ac15d0e9e58419b5d978515 /lib/pure/nimtracker.nim
parentced38f3fdb4a4eedd8c999c479b80d593dfe2600 (diff)
downloadNim-98c7bab8eaa3daf872b12984a07b269f548210e4.tar.gz
make memory tracker work without onThreadCreation
Diffstat (limited to 'lib/pure/nimtracker.nim')
-rw-r--r--lib/pure/nimtracker.nim10
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/pure/nimtracker.nim b/lib/pure/nimtracker.nim
index acc242257..a66dfc2ea 100644
--- a/lib/pure/nimtracker.nim
+++ b/lib/pure/nimtracker.nim
@@ -23,12 +23,6 @@ var
 
 const insertQuery = "INSERT INTO tracking(op, address, size, file, line) values (?, ?, ?, ?, ?)"
 
-when compileOption("threads"):
-  onThreadCreation do():
-    if prepare_v2(dbHandle, insertQuery,
-        insertQuery.len, insertStmt, nil) != SQLITE_OK:
-      quit "could not bind query to insertStmt " & $sqlite3.errmsg(dbHandle)
-
 template sbind(x: int; value) =
   when value is cstring:
     let ret = insertStmt.bindText(x, value, value.len.int32, SQLITE_TRANSIENT)
@@ -41,6 +35,10 @@ template sbind(x: int; value) =
 
 when defined(memTracker):
   proc logEntries(log: TrackLog) {.nimcall, locks: 0, tags: [], gcsafe.} =
+    if insertStmt.isNil:
+      if prepare_v2(dbHandle, insertQuery,
+          insertQuery.len, insertStmt, nil) != SQLITE_OK:
+        quit "could not bind query to insertStmt " & $sqlite3.errmsg(dbHandle)
     for i in 0..log.count-1:
       var success = false
       let e = log.data[i]