# | Line 138 | Line 138 | class RtraceSimulManager : public RadSimulManager { (p | |
---|---|---|
138 | cookedCall = cb; | |
139 | ccData = cb ? cd : NULL; | |
140 | } | |
141 | < | /// Set/change trace callback (before threading) |
141 | > | /// Set/change trace callback |
142 | void SetTraceCall(RayReportCall *cb, void *cd = NULL) { | |
143 | + | if ((cb == traceCall) & (cd == tcData)) return; |
144 | + | int nt = NThreads(); |
145 | + | if (nt > 1) SetThreadCount(1); |
146 | traceCall = cb; | |
147 | tcData = cb ? cd : NULL; | |
148 | + | if (nt > 1) SetThreadCount(nt); |
149 | } | |
150 | /// Are we ready? | |
151 | bool Ready() const { |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |