<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Okay, I solved the problem by replacing
      the <br>
      <i>ss-&gt;register_closure(name, id, params, prepare, NULL, 16);<br>
      </i>with<br>
      <i>ss-&gt;register_closure(name, id, params, prepare, NULL);<br>
      </i>what seems to work. But now I have a different problem. My
      application crashes with:<br>
      <br>
      f:\dd\vctools\crt\crtw32\stdcpp\thr\mutex.c(40): mutex destroyed
      while busy<br>
      <br>
      It seems that I forgot to destroy anything. If anyone could have a
      look, it would be great. I could not find out what's missing.<br>
      The program cancels correctly but something seems not to be
      deleted correctly because the error occurs if the program exits.<br>
      <br>
      My code looks like this:<br>
      <br>
      #include &lt;stdio.h&gt;<br>
      #include &lt;fstream&gt;<br>
      #include &lt;iostream&gt;<br>
      #include &lt;tchar.h&gt;<br>
      <br>
      #include "buffers.h"<br>
      #include "camera.h"<br>
      #include "device.h"<br>
      #include "scene.h"<br>
      #include "session.h"<br>
      #include "integrator.h"<br>
      <br>
      ccl::Session *session;<br>
      ccl::Scene *scene;<br>
      string filepath;<br>
      ccl::SceneParams scene_params;<br>
      ccl::SessionParams session_params;<br>
      ccl::BufferParams buffer_params;<br>
      <br>
      static void session_print_status()<br>
      {<br>
          int sample, tile;<br>
          double total_time, sample_time, render_time;<br>
          string status, substatus;<br>
          <br>
          sample = session-&gt;progress.get_sample();<br>
          session-&gt;progress.get_tile(tile, total_time, sample_time,
      render_time);<br>
          session-&gt;progress.get_status(status, substatus);<br>
      <br>
          std::cout &lt;&lt; "Sample " &lt;&lt; sample &lt;&lt; "
      Status:" &lt;&lt; status &lt;&lt; " Substatus: " &lt;&lt;
      substatus &lt;&lt; "\n";<br>
      <br>
          if (sample &gt; 300)<br>
          {<br>
              std::cout &lt;&lt; "Finish session.\n";<br>
              session-&gt;progress.set_cancel("Cancelled");<br>
          }<br>
      }<br>
      <br>
      CCL_NAMESPACE_BEGIN<br>
      void doit()<br>
      {    <br>
          buffer_params.width = 640;<br>
          buffer_params.height = 480;<br>
          buffer_params.full_width = 640;<br>
          buffer_params.full_height = 480;<br>
      <br>
          session_params.output_path =
      "H:/UserDatenHaggi/Documents/coding/cycles/testAPI/output.exr";<br>
          scene = new Scene(scene_params, session_params.device);<br>
          session_params.samples = 10;<br>
          session_params.progressive = true;<br>
          session = new Session(session_params);<br>
          session-&gt;reset(buffer_params, session_params.samples);<br>
          session-&gt;scene = scene;<br>
         
session-&gt;progress.set_update_callback(function_bind(&amp;session_print_status));<br>
          session-&gt;start();<br>
          session-&gt;wait();        <br>
      };<br>
      <br>
      CCL_NAMESPACE_END<br>
      <br>
      void main(int argc, const char **argv)<br>
      {<br>
          ccl::doit();<br>
          std::cout &lt;&lt; "Done.\n";<br>
      }<br>
      <br>
    </div>
  </body>
</html>