Merge pull request #5170 from jdfreder/widget-throttle-trait

Added msg_throttle sync=True widget traitlet
pull/37/head
Min RK 12 years ago
commit 612acd2e08

@ -34,7 +34,6 @@ function(WidgetManager, _, Backbone){
this.widget_manager = widget_manager;
this._buffered_state_diff = {};
this.pending_msgs = 0;
this.msg_throttle = 3;
this.msg_buffer = null;
this.key_value_lock = null;
this.id = model_id;
@ -110,7 +109,7 @@ function(WidgetManager, _, Backbone){
// Send buffer if this message caused another message to be
// throttled.
if (this.msg_buffer !== null &&
this.msg_throttle === this.pending_msgs) {
(this.get('msg_throttle') || 3) === this.pending_msgs) {
var data = {method: 'backbone', sync_method: 'update', sync_data: this.msg_buffer};
this.comm.send(data, callbacks);
this.msg_buffer = null;
@ -179,7 +178,7 @@ function(WidgetManager, _, Backbone){
var callbacks = options.callbacks || this.callbacks();
// Check throttle.
if (this.pending_msgs >= this.msg_throttle) {
if (this.pending_msgs >= (this.get('msg_throttle') || 3)) {
// The throttle has been exceeded, buffer the current msg so
// it can be sent once the kernel has finished processing
// some of the existing messages.

@ -17,7 +17,7 @@ from contextlib import contextmanager
from IPython.core.getipython import get_ipython
from IPython.kernel.comm import Comm
from IPython.config import LoggingConfigurable
from IPython.utils.traitlets import Unicode, Dict, Instance, Bool, List, Tuple
from IPython.utils.traitlets import Unicode, Dict, Instance, Bool, List, Tuple, Int
from IPython.utils.py3compat import string_types
#-----------------------------------------------------------------------------
@ -103,6 +103,8 @@ class Widget(LoggingConfigurable):
_comm = Instance('IPython.kernel.comm.Comm')
closed = Bool(False)
msg_throttle = Int(3, sync=True, help="""Maximum number of msgs the
front-end can send before receiving an idle msg from the back-end.""")
keys = List()
def _keys_default(self):

Loading…
Cancel
Save