Reason was some insideous detail regarding Lambdas: When a Lambda captures context, a *closure* is created. And while the Lambda itself is generated code, pretty much like an anonymous function, the closure depends on the context that was captured. In our case here, the Lambda used to start the thread was the problem: it captured the termCallback functor from the argument of the enclosing function. In fact it did not help or change anything if we successively package that lambda into a function objet and store this by value, because the lambda still refers to the transient function context present on stack at the moment it was captured. The solution is to revert back to a bind expression, since this creates a dedicated storage for the bound function arguments managed within the bind-functor. This makes us independent from the call context |
||
|---|---|---|
| .. | ||
| draw | ||
| DIR_INFO | ||
| empty.html | ||
| InterfaceConcept_Varga.mm | ||
| renderengine.html | ||
| thinkPad.ichthyo.mm | ||
| uml | ||
| workflow.mm | ||