<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Depending on what you want to do, some have to be interruptible,
      and some have to prioritary. For example in the following example,
      where you can start/stop incrementing a slider,  the "start"
      callback must be interruptible but the "stop" callback must be
      prioritary :<br>
    </p>
    <pre style="font-family:Monospaced;font-style:normal;font-size:18.0;"><font size="2"><span style="color:rgb(176,24,19);">function</span> <span style="color:rgb(0,0,0);text-decoration:underline;">stop</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(74,85,219);">)</span>
    <span style="color:rgb(50,185,185);">set</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">button</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">userdata</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(218,112,214);">%t</span><span style="color:rgb(74,85,219);">)</span>
<span style="color:rgb(176,24,19);">endfunction</span>

<span style="color:rgb(176,24,19);">function</span> <span style="color:rgb(0,0,0);text-decoration:underline;">start</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(74,85,219);">)</span>
    <span style="color:rgb(160,32,240);">try</span>
        <span style="color:rgb(0,0,0);">but</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">get</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">button</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span>
        <span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">string</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">stop</span><span style="color:rgb(188,143,143);">"</span>
        <span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">callback</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">stop()</span><span style="color:rgb(188,143,143);">"</span>
        <span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">callback_type</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">10</span><span style="color:rgb(0,0,0);">;</span>
        <span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">userdata</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(218,112,214);">%f</span><span style="color:rgb(0,0,0);">;</span>
        <span style="color:rgb(0,0,0);">sl</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(50,185,185);">get</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">slider</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
        <span style="color:rgb(160,32,240);">for</span> <span style="color:rgb(0,0,0);">t</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(0,0,0);">tuser</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">tuser</span><span style="color:rgb(92,92,92);">>=</span><span style="color:rgb(0,0,0);">sl</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">value</span><span style="color:rgb(74,85,219);">)</span>
            <span style="color:rgb(160,32,240);">if</span> <span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">userdata</span>
                <span style="color:rgb(95,158,160);">break</span><span style="color:rgb(0,0,0);">;</span>
            <span style="color:rgb(160,32,240);">end</span>
            <span style="color:rgb(0,0,0);">sl</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">value</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">t</span><span style="color:rgb(0,0,0);">;</span>
            <span style="color:rgb(0,0,0);">title</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(50,185,185);">msprintf</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">t=%g</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">t</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span>
        <span style="color:rgb(160,32,240);">end</span>
        <span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">callback_type</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">0</span><span style="color:rgb(0,0,0);">;</span>
        <span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">callback</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">start()</span><span style="color:rgb(188,143,143);">"</span>
        <span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">.</span><span style="color:rgb(170,170,170);">string</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">start</span><span style="color:rgb(188,143,143);">"</span>
    <span style="color:rgb(160,32,240);">catch</span>
    <span style="color:rgb(160,32,240);">end</span>
<span style="color:rgb(176,24,19);">endfunction</span>

<span style="color:rgb(0,0,0);">tuser</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(188,143,143);">0</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">0.001</span><span style="color:rgb(255,170,0);">:</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(0,0,0);">;</span>

<span style="color:rgb(0,0,0);">sl</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(50,185,185);">uicontrol</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">style</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">slider</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">tag</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">slider</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">units</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">normalized</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">position</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">0.1</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0.9</span> <span style="color:rgb(188,143,143);">0.05</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">background</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">min</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">t</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">max</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(0,0,0);">t</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(255,170,0);">$</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">sliderstep</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">t</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">2</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">-</span><span style="color:rgb(0,0,0);">t</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(92,92,92);">*</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">1</span> <span style="color:rgb(188,143,143);">1</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>

<span style="color:rgb(0,0,0);">but</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(50,185,185);">uicontrol</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">style</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">pushbutton</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">units</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">normalized</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">position</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0.1</span> <span style="color:rgb(188,143,143);">0.05</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">string</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">start</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">tag</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">button</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">string</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">start</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">callback</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">start()</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span></font></pre>
    <p></p>
    <div class="moz-cite-prefix">Le 20/09/2022 à 13:41, Stefan Du Rietz
      a écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:82da9096-85c8-e693-9187-181ac95ed033@durietz.se">Hi,
      thanks.
      <br>
      Yes, but it doesn't seem to make much difference. And I don't
      exactly understand the different options.
      <br>
      <br>
      Stefan
      <br>
      <br>
      <br>
      On 2022-09-20 12:03, Stéphane Mottelet wrote:
      <br>
      <blockquote type="cite">Hi,
        <br>
        <br>
        Did you try to play wth callback_type (interruptible or not) ?
        <br>
        <br>
        Le 20/09/2022 à 10:48, Stefan Du Rietz a écrit :
        <br>
        <blockquote type="cite">Hello Stéphane,
          <br>
          <br>
          a minimal example works OK all the time ...
          <br>
          <br>
          So, there must be something in my rather complex GUI
          environment, with many private functions, that does not. But
          since I get no warning or error messages, I don't know how to
          proceed.
          <br>
          <br>
          Can the delays be due to timeouts?
          <br>
          <br>
          Regards
          <br>
          Stefan
          <br>
          <br>
          <br>
          On 2022-09-19 08:45, Stéphane Mottelet wrote:
          <br>
          <blockquote type="cite">Hello Stefan,
            <br>
            <br>
            Can you  give a minimal and reproductible example ?
            <br>
            <br>
            S.
            <br>
            <br>
            Le 18/09/2022 à 12:18, Stefan Du Rietz a écrit :
            <br>
            <blockquote type="cite">Hello,
              <br>
              I have a problem with GUI: when I choose a menu or press a
              button, sometimes it takes half a minute before the
              callback starts. Scilab is then using 100% of CPU,
              according to Bash top. I suppose it has something to do
              with Java? What can I do?
              <br>
              <br>
              --> ver
              <br>
               ans  =
              <br>
                "Scilab Version: "                    "6.1.1.1626343451"
              <br>
                "Operating System: "                  "Linux
              5.4.0-125-generic"
              <br>
                "Java version: "                      "1.8.0_292"
              <br>
                "Java runtime information: "          "OpenJDK Runtime
              Environment (build 1.8.0_292-b10)"
              <br>
                "Java Virtual Machine information: "  "OpenJDK 64-Bit
              Server VM (build 25.292-b10, mixed mode)"
              <br>
                "Vendor specification: "              "Oracle
              Corporation"
              <br>
              <br>
              Regards
              <br>
              Stefan
              <br>
              _______________________________________________
              <br>
              users mailing list - <a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
              <br>
              Click here to unsubscribe:
              <a class="moz-txt-link-rfc2396E" href="mailto:users-unsubscribe@lists.scilab.org"><mailto:users-unsubscribe@lists.scilab.org></a>
              <br>
              <a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
              <br>
            </blockquote>
            <br>
          </blockquote>
          _______________________________________________
          <br>
          users mailing list - <a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
          <br>
          Click here to unsubscribe:
          <a class="moz-txt-link-rfc2396E" href="mailto:users-unsubscribe@lists.scilab.org"><mailto:users-unsubscribe@lists.scilab.org></a>
          <br>
          <a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
          <br>
        </blockquote>
        <br>
      </blockquote>
      _______________________________________________
      <br>
      users mailing list - <a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
      <br>
      Click here to unsubscribe:
      <a class="moz-txt-link-rfc2396E" href="mailto:users-unsubscribe@lists.scilab.org"><mailto:users-unsubscribe@lists.scilab.org></a>
      <br>
      <a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/users">http://lists.scilab.org/mailman/listinfo/users</a>
      <br>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
<a class="moz-txt-link-freetext" href="http://www.utc.fr/~mottelet">http://www.utc.fr/~mottelet</a>
</pre>
  </body>
</html>