Anaconda Enterprise: Documentation

# bokeh.document.locking

class `bokeh.document.locking.``UnlockedDocumentProxy`(doc)

  Wrap a Document object so that only methods that can safely be used from unlocked callbacks or threads are exposed. Attempts to otherwise access or change the Document results in an exception.

  `add_next_tick_callback`(callback)

    Add a “next tick” callback.

    Parameters: | callback (callable) –

  `remove_next_tick_callback`(callback)

    Remove a “next tick” callback.

    Parameters: | callback (callable) –

`bokeh.document.locking.``without_document_lock`(func)

  Wrap a callback function to execute without first obtaining the document lock.

  Parameters: | func (callable) – The function to wrap
  Returns: | a function wrapped to execute without a |Document| lock.
  Return type: | callable

  While inside an unlocked callback, it is completely unsafe to modify `curdoc()`. The value of `curdoc()` inside the callback will be a specially wrapped version of |Document| that only allows safe operations, which are:

  - `add_next_tick_callback()`
  - `remove_next_tick_callback()`

  Only these may be used safely without taking the document lock. To make other changes to the document, you must add a next tick callback and make your changes to `curdoc()` from that second callback.

  Attempts to otherwise access or change the Document will result in an exception being raised.