octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #52804] "Interruptible" and "BusyAction" prope


From: Rik
Subject: [Octave-bug-tracker] [bug #52804] "Interruptible" and "BusyAction" properties
Date: Thu, 4 Jan 2018 00:00:08 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

URL:
  <http://savannah.gnu.org/bugs/?52804>

                 Summary: "Interruptible" and "BusyAction" properties
                 Project: GNU Octave
            Submitted by: rik5
            Submitted on: Wed 03 Jan 2018 09:00:05 PM PST
                Category: Plotting
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Matlab Compatibility
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: dev
        Operating System: GNU/Linux

    _______________________________________________________

Details:

It's kind of hard to say, but I don't think Octave is implementing the
"Interruptible" and "BusyAction" properties.

It would be useful if someone could run the attached script
tst_callback_interrupt.m script.


close all;

function cb_tag (hax, ~)
  fprintf (2, 'cb_tag: callback executed\n');
%  fflush (2);
endfunction

function cb_userdata (hax, ~)
  fprintf (2, 'cb_userdata: callback started\n');
%  fflush (2);
  set (hax, 'tag', 'foo');
  fprintf (2, 'cb_userdata: called set() once\n');
%  fflush (2);
  set (hax, 'tag', 'bar');
  fprintf (2, 'cb_userdata: called set() twice\n');
%  fflush (2);
  set (hax, 'tag', '');
  fprintf (2, 'cb_userdata: called set() thrice\n');
%  fflush (2);
endfunction

hf = figure ();
hax = gca ();
set (hax, 'interruptible', 'off');
addlistener (hax, 'tag', @cb_tag);
addlistener (hax, 'userdata', @cb_userdata);

set (hax, 'busyaction', 'queue');

fprintf (2, ['\n' '"busyaction" = "queue"' '\n']);
fprintf (2, ['changing "userdata"' '\n']);
set (hax, 'userdata', 5);

set (hax, 'busyaction', 'cancel');

fprintf (2, ['\n' '"busyaction" = "cancel"' '\n']);
fprintf (2, ['changing "userdata"' '\n']);
set (hax, 'userdata', 0);


Under Octave, this produces:


"busyaction" = "queue"
changing "userdata"
cb_userdata: callback started
cb_tag: callback executed
cb_userdata: called set() once
cb_tag: callback executed
cb_userdata: called set() twice
cb_tag: callback executed
cb_userdata: called set() thrice

"busyaction" = "cancel"
changing "userdata"
cb_userdata: callback started
cb_tag: callback executed
cb_userdata: called set() once
cb_tag: callback executed
cb_userdata: called set() twice
cb_tag: callback executed
cb_userdata: called set() thrice


First, with "interruptible" turned off I don't think the cb_tag callback
should be executed during the running of cb_userdata.  But even if that is
iscorrect, why is there no difference when the "BusyAction" property is
changed?




    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Wed 03 Jan 2018 09:00:05 PM PST  Name: tst_callback_interrupt.m  Size:
958B   By: rik5

<http://savannah.gnu.org/bugs/download.php?file_id=42818>

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?52804>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]